复制
收藏
提问
简洁
下列代码的输出是什么?char *str = "Hello"; printf("%c", *(str + 4));
3月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
在C语言中,字符串常量如"Hello"在内存中是以字符数组的形式存储的,并且以空字符'\0'结尾。当定义一个字符指针str
并将其初始化为指向字符串常量"Hello"时,str
指向的是这个字符数组的首地址35。
在提供的代码char *str = "Hello"; printf("%c", *(str + 4));
中,str + 4
表示从str
指向的地址开始,向后移动4个字符的位置。由于"Hello"字符串包含5个字符('H', 'e', 'l', 'l', 'o')加上一个空字符'\0',所以str + 4
实际上指向的是字符串的最后一个字符'o'3。
因此,*(str + 4)
将获取该地址处的字符值,即字符'o'。printf("%c", *(str + 4));
这行代码将输出字符'o'。
你觉得结果怎么样?