若定义 char s[2][3]={"ab","cd"},*p=(char *)s; 那么下列表达式语法正确,

若定义 char s[2][3]={"ab","cd"},*p=(char *)s; 那么下列表达式语法正确,
若定义
x09x09x09x09x09x09
char s[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
tabvf 1年前 已收到1个回答 举报

ltss006 幼苗

共回答了17个问题采纳率:94.1% 举报

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码.

1年前 追问

4

tabvf 举报

为什么p是一个char*指针,指向字符数组首地址,&s[0][0],*++p+2不应该是说明平指向&s[1][2]吗?

举报 ltss006

基础不过关,解释了也没用,回去看书。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.076 s. - webmaster@yulucn.com