C语言,这题为什么选c啊?
设有如下定义,unsignedlonga[100]={0,1,3,9};unsignedlong*pa=a,*pb=&a[3],*pc;intx;则下面语句中存在语法错误...
设有如下定义,
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); 展开
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); 展开
4个回答
展开全部
mark是数组名,类型是const char* 就是指针常量。这时候候如果想C1样做,就是企图改变常量的值,只是不允许的。C语言编译器把数组名都当作指针常量(指针本身是常量,不能让它去指向其他东西)处理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针只能相减,不能相加。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针加法运算,就是从一个指针开始,向后移动一段范围。这个范围不能超过已申请的范围哦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-11-28
展开全部
pc是指针必须赋值地址,pa和pb都是地址,但是不能相加。但是可以pa+n这样偏移作为地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询