问题标题:
若定义chars[2][3]={"ab","cd"},*p=(char*)s;那么下列表达式语法正确,若定义x09x09x09x09x09x09chars[2][3]={“ab”,“cd”},*p=(char*)s;那么下列表达式语法正确,并且其值与s[1][1]相等的表达式(并非一定
问题描述:
若定义chars[2][3]={"ab","cd"},*p=(char*)s;那么下列表达式语法正确,
若定义
x09x09x09x09x09x09
chars[2][3]={“ab”,“cd”},*p=(char*)s;
那么下列表达式语法正确,并且其值与s[1][1]相等的表达式(并非一定与其等价)是(
x09x09x09x09x09x09
).
(3分)
x09x09x09x09x09x09
A、*(s+3)
B、*++p+2
C、*s+2
D、p[1][1]
x09x09x09x09x09x09
x09x09x09x09x09x09
B
x09x09x09x09x09
x09x09x09x09
x09x09x09
x09x09
陈文芗回答:
s[1][1]='d',这个应该没问题吧?第二个字符串的第二个字符.
*++p+2这个比较有趣,p是一个char*指针,指向字符数组首地址,&s[0][0].
首先++的优先级更高执行++p得到的是&s[0][1],然后*运算符解引用,得到s[0][1]
s[0][1]的字符是'b',然后'b'+2,得到的就是'd'的ASCII码.
何健刚回答:
为什么p是一个char*指针,指向字符数组首地址,&s[0][0],*++p+2不应该是说明平指向&s[1][2]吗?
陈文芗回答:
基础不过关,解释了也没用,回去看书。
点击显示
其它推荐