a905448839 发表于 2023-4-26 21:20:11

表达式*(p++)->s的值是?

struct {
    int k;
    char s;
} a = {1, "ABC", 2, "abc"}, *p = a;

那么表达式*(p++)->s的值是_______.




A.
"abc"



B.
'A'


C.
'a'


D.
"ABC"

isdkz 发表于 2023-4-26 22:14:57

表达式 *(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"。

a905448839 发表于 2023-4-26 22:17:49

isdkz 发表于 2023-4-26 22:14
表达式 *(p++)->s 的值为 "ABC"。

解释如下:


这道题的答案是'A'我开始也认为是ABC。。。 {:5_107:}

isdkz 发表于 2023-4-26 22:24:36

a905448839 发表于 2023-4-26 22:17
这道题的答案是'A'我开始也认为是ABC。。。

确实是A才对{:10_277:},因为得到的是 "ABC" 的首字符地址,所以结果就是首字符 "A"
页: [1]
查看完整版本: 表达式*(p++)->s的值是?