鱼C论坛

 找回密码
 立即注册
查看: 1351|回复: 3

[已解决]表达式*(p++)->s的值是?

[复制链接]
发表于 2023-4-26 21:20:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
struct { 
    int k; 
    char s[30]; 
} a[5] = {1, "ABC", 2, "abc"}, *p = a;

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

‏
‎

A.
"abc"



B.
'A'


C.
'a'


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

确实是A才对,因为得到的是 "ABC" 的首字符地址,所以结果就是首字符 "A"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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"。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-26 22:17:49 | 显示全部楼层
isdkz 发表于 2023-4-26 22:14
表达式 *(p++)->s 的值为 "ABC"。

解释如下:

这道题的答案是'A'  我开始也认为是ABC。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-26 22:24:36 | 显示全部楼层    本楼为最佳答案   
a905448839 发表于 2023-4-26 22:17
这道题的答案是'A'  我开始也认为是ABC。。。

确实是A才对,因为得到的是 "ABC" 的首字符地址,所以结果就是首字符 "A"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 15:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表