表达式*(p++)->s的值是?
struct {int k;
char s;
} a = {1, "ABC", 2, "abc"}, *p = a;
那么表达式*(p++)->s的值是_______.
A.
"abc"
B.
'A'
C.
'a'
D.
"ABC" 表达式 *(p++)->s 的值为 "ABC"。
解释如下:
1. 结构体数组 a 定义了 5 个元素,每个元素包含一个整数 k 和一个 30 字符长度的字符串 s。
2. 初始化数组时,只给出了前两个元素的值,分别为 {1, "ABC"} 和 {2, "abc"}。
3. 指针 p 指向数组 a 的首个元素。
4. 表达式中的 (p++)->s 指向 p 指向的元素的字符串 s,也就是 "ABC",然后将 p 指针向后移动一个元素。
5. 表达式的结果是 *(p++)->s,即 "ABC" 的首字符地址,因此结果是 "ABC"。
所以正确答案是 D. "ABC"。 isdkz 发表于 2023-4-26 22:14
表达式 *(p++)->s 的值为 "ABC"。
解释如下:
这道题的答案是'A'我开始也认为是ABC。。。 {:5_107:} a905448839 发表于 2023-4-26 22:17
这道题的答案是'A'我开始也认为是ABC。。。
确实是A才对{:10_277:},因为得到的是 "ABC" 的首字符地址,所以结果就是首字符 "A"
页:
[1]