11问答网
所有问题
若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是 A)p=s; B)p=k; C)p=s[0]; D)k=s;
B为什么不对? D为什么对 ? 求大神详解
看错答案 了。c是对的 。 那B是为甚么错了?
举报该问题
推荐答案 推荐于2016-02-19
参考答案:我是这样认为的:*是指针运算符。我们曾可以这样去定义:int a[10],*p,**s;
如果在下面的语句中出现了*p=a;
这就意味着指针p已经指向数组的首地址,也就是a[0],
此时我们可认为指针p是一级指针.
如果在下面的语句中出现了*s=p,
这就意味着指针s指向了p的单元,而p指向了a[0]
此时s离数组的首地址形象的像隔了2级
因此称s为2级指针.
对于2级指针,有**s=*(*s)=*p=&a[0]
追问
b 是为什么错的?
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://11.wendadaohang.com/zd/FSM2v4S87884M78224M.html
其他回答
第1个回答 2019-10-25
b错,是因为把指针赋给指针了
相似回答
大家正在搜
相关问题
若有定义语句:char s[3][10],(*k)[3],*...
若有说明:int n=2,*p=&n,*q=p;则以下非法的...
定义语句:char s[3][10],(*k)[3],*p;...
若有定义语句:char s[3][10],(*k)[3],*...
c语言 char s【3】【10】,(*k)【3】,*p;则...
语句:char s[3] [10],(*k)[3],*p; ...
若有定义:char *p1,*p2,*p3,*p4,ch; ...
若有定义:char d[15],*p=d;则以下正确的赋值语...