【sos】以下选项中,对指针变量p不正确的操作是 ____

A
int a[5],*p;
p=&a;

B
int a[5],*p;
p=a;

C
int a[5];
int *p=a=1000;

D
int a[5];
int *p1,*p2=a;*p1=*p2;

答案是 b,,为什么

我觉得a错了啊,,还有b哪里错了

答案说B错,是不对的。应该是C错。用gcc编译调试的结果:A有警告无错误,BD无警告无错误,C报错,所以C错误。
C错在a=1000这个点,p=1000还是没错的。
a是数组首地址,是常量,无法改变。数组a的元素是可以改变的。
a没错,b也没错就不用说了。
a没错:a代表&a[0],是首元素的地址。&a的值=a的值,但是&a代表的意义是整个数组的地址。怎么理解整个数组的地址呢?对于int a[5],假设int长度为4,a地址为0即a=0,那么a+1=4,但是&a+1=20。
p=a和p=&a,p在数值上是相等的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-12-16
题目错了,你没错,呵呵

应为问 哪个是正确的
a --你知道
b 对
c 数组名是常量不能赋值, 指针p也不能用整数赋值
d p1 没有分配内存, *p1 就挂了本回答被提问者和网友采纳
第2个回答  2011-04-25
首先,字节数不是指字符串长度,字符串长度比存储字节数少一。
\t 是一个转义字符 相当于键盘“Tab”键
a 普通字符
\017 转义字符 ASCII代码值为8进制数17即10进制数15的那个符号
b 普通字符
c 普通字符
字符串结束标志‘\0’
s是字符串类型。每一个都是char型变量;char型变量的二进制长度是8,也就是一个字节,
所以指针变量s 指向的字符串所占字节数是6 ,字符串长度是5.
第3个回答  2011-04-24
题目多了个“不”字。
其实ACD都是错误用法,只有B是对的。
第4个回答  2011-04-24
我觉得是题目出错了,应该是选正确的才对!
相似回答