gpt4 book ai didi

c - printf ("%s",*&*str) 的输出是什么? str 中的哪里是指针?

转载 作者:太空宇宙 更新时间:2023-11-04 07:46:32 25 4
gpt4 key购买 nike

这是我在采访中要求的代码片段,请解释一下&的用途。

#include<stdio.h>
int main()
{
char *str="INCLUDEHELP";
printf("%s",*&*str);
}

最佳答案

&* 是一个空操作。 &*str(或类似 &*&*&*&*&*&*&*&*&*str 或任意数量的 &*) 等同于 str。参见 C11 note102 .我们可以省略它。

char *str="INCLUDEHELP";
printf("%s", *str);

此带有 %s 的代码无效。 %s 需要零终止的 char 数组。 *str 是一个 char,其值为 'I',一个字符。类 linux 系统上的程序很可能会收到段错误信号,因为 'I' 将是零终止字符数组的无效地址。

如果是:

char *str="INCLUDEHELP";
printf("%c", *str);

或:

#include<stdio.h>
int main()
{
char *str="INCLUDEHELP";
printf("%c",*&*str);
}

,然后程序会在它的 stdout 上打印一个字符 I

关于c - printf ("%s",*&*str) 的输出是什么? str 中的哪里是指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56520951/

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