c语言 第五题c选项不理解,并且也不知道画线的什么意思!!求解蟹蟹

如题所述

char *p; 这里定义指针变量,但没有初始化赋值,p值是个不确定的数值,此时的p被称为野指针
*p = "abcdef" ;
一、*p表示引用p指针地址中的数据(表示一个字符变量),而p没有确定的值,所以,这样引用会导致错误!
二、*p是指一个字符变量, 而右边"abcdef" 是个字符串(地址,指针),所以,两个数据类型不一样,这样赋值也是错误的!追问

那这个B选项的定义也是错的吗

追答

数组名是个常量,代表数组首地址,不允许进行赋值操作!

追问

哦哦

那它在初始化的时候

比如选项B指的是什么

指向字符串第一个元素g吗

这个选项B

追答

char *str="good" ; 这里的*是跟随char的,不是运算符,表示变量str类型是char *类型!
理论上相当于:
char *str ;
str="good" ;
str指向字符串"good"的首地址,也就是第一个元素g的所在地址

追问

哦哦懂了

还有最后一个问题

字符串在连接的时候,输出时什么时候中间有空格什么时候没有啊

像这个输入的字符串是I love,后连接上的是programming然而中间有空格

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-29
因为指针p知识声明了,没有定义(也就是没有赋初值)。所以此时P的值是undefined,也就是乱七八糟的值。
所以*p 对一个undefined的地址取值就是错误的

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网