C语言,这题为什么选c啊?

设有如下定义,
unsigned long a[100] = {0, 1, 3, 9};
unsigned long *pa = a, *pb = &a[3], *pc;
int x;
则下面语句中存在语法错误的是
(A)x = pb - pa; (B)pc = pb - 2;
(C)pc = pa + pb; (D)pc = pb + (pb - pa);

第1个回答  2018-06-20
mark是数组名,类型是const char* 就是指针常量。这时候候如果想C1样做,就是企图改变常量的值,只是不允许的。C语言编译器把数组名都当作指针常量(指针本身是常量,不能让它去指向其他东西)处理。
第2个回答  2018-06-20
指针只能相减,不能相加。本回答被提问者采纳
第3个回答  2018-11-29
指针加法运算,就是从一个指针开始,向后移动一段范围。这个范围不能超过已申请的范围哦。
第4个回答  2018-11-28
pc是指针必须赋值地址,pa和pb都是地址,但是不能相加。但是可以pa+n这样偏移作为地址。