一路C语言面试题,来看看
一道C语言面试题,来看看!
假设下列声明是有效的:
(a) *(p+3)的值是多少? 14
(b) *(q-3)的值是多少? 34
(c) q-p的值是多少? -13
(d) *p < *q 的结果是真还是假? 假
我做的对不对,如果错了,错在哪里,帮我讲一下,谢谢!!
------解决方案--------------------
*(p+3)=14
*(q-3)=34
q-p=4
*p < *q = 0
------解决方案--------------------
(c) q-p的值是多少? 4
其他对的
------解决方案--------------------
q-p是间隔几个成员的意思,和数据类型无关,就像p+3一样,实际跨越的长度是12
------解决方案--------------------
第三个不对了,q-p = 4;
p 指向数组a[1]的地址,q指向数组a【5】的地址
------解决方案--------------------
------解决方案--------------------
q-p为指针相减,结果为4.
如果两个指针向同一个数组,它们就可以相减,其为结果为两个指针之间的元素数目.
假设下列声明是有效的:
- C/C++ code
int a[]={5,15,34,54,14,2,52,72}; int *p=&a[1],*q=&a[5];
(a) *(p+3)的值是多少? 14
(b) *(q-3)的值是多少? 34
(c) q-p的值是多少? -13
(d) *p < *q 的结果是真还是假? 假
我做的对不对,如果错了,错在哪里,帮我讲一下,谢谢!!
------解决方案--------------------
*(p+3)=14
*(q-3)=34
q-p=4
*p < *q = 0
------解决方案--------------------
(c) q-p的值是多少? 4
其他对的
------解决方案--------------------
q-p是间隔几个成员的意思,和数据类型无关,就像p+3一样,实际跨越的长度是12
------解决方案--------------------
第三个不对了,q-p = 4;
p 指向数组a[1]的地址,q指向数组a【5】的地址
------解决方案--------------------
------解决方案--------------------
q-p为指针相减,结果为4.
如果两个指针向同一个数组,它们就可以相减,其为结果为两个指针之间的元素数目.