gpt4 book ai didi

c - 打印指针的值时是否需要间接运算符?

转载 作者:行者123 更新时间:2023-11-30 14:47:26 26 4
gpt4 key购买 nike

我正在读一本关于 c 语言的书,并且对其字符串指针示例之一有疑问。

int x;
char *str = "Food";
printf("Pointer variable value: %p\n", *str);
printf("Pointer points to: %s\n", str);
printf("Memory locations of chars are: \n");

for(x = 0; x < 5; x++)
printf("%p\n", str[x]);

为什么第一个 printf 中的字符串名称前面需要间接寻址运算符,以及为什么 for 循环中不需要 address-of 运算符printf

但是,当我执行这个程序时,两个“o”字符实际上具有相同的地址。当我在 str[x] 前面添加地址运算符时,地址变得连续。

最佳答案

以下行是错误的。

printf("Pointer variable value: %p\n", *str);

要打印指针,第二个参数只需为 str

printf("Pointer variable value: %p\n", str);

下面这行也是错误的。

printf("%p\n", str[x]);

要打印指针,请将第二个参数更改为 &str[x]

printf("%p\n", &str[x]);

关于c - 打印指针的值时是否需要间接运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51257859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com