我正在尝试访问“c”中预初始化的 char
指针的所有元素。这是代码:
#include <stdio.h>
#include <stdlib.h>
void main()
{
char **s="Hello";
printf("%c",*(*&s+1));
}
这段代码应该输出“e”,但没有。我做错了什么?
另外,如何一一访问所有元素?
最佳答案
s
的类型不正确。字符串常量 "Hello"
具有数组类型,可以衰减为 char *
类型,但您将其分配给 char **
类型的变量>.
将 s
的类型更改为 char *
,您的代码将输出“e”:
char *s = "Hello";
另外,看看这个:
*(*&s+1)
当*
出现在&
之前时,它们会相互抵消。所以你可以将其简化为:
*(s+1)
或者等效的:
s[1]
关于c - 如何在 C 中循环 char 指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59054632/