gpt4 book ai didi

C 程序。指针和字符串

转载 作者:行者123 更新时间:2023-11-30 21:20:29 24 4
gpt4 key购买 nike

char str[] = "hello World!!!!!";
char *ptr = str + 6;
printf("%s",ptr);

输出:lo World!!!!!

这里是printf声明它被指定ptr而不是*ptr因此,为了打印变量的值,我们使用 * (取消引用运算符)与指针名称。例如:

int i=2;
int *ptr;
ptr=&i;
printf("%d",ptr);

打印地址,因为 ptr 存储地址( &i ),与上面的示例类似,因为它应该打印地址而不是 str[] 的值仅ptr被使用而不是 *ptr ,但事实并非如此。为什么?

最佳答案

在第一个示例中,您必须"%s" 修饰符传递一个 char 指针,因此它实际上是这样的是的,如果您阅读适当的文档,您当然会知道,例如C 标准。

第二个是错误的。因为它会调用未定义的行为。要打印变量的地址,您需要使用运算符的 & 地址创建指向该变量的指针,或者直接使用运算符的地址和 "%p" printf() 说明符,任何其他说明符都会导致未定义的行为

使用正确的说明符,也可以在您的第一个示例中工作。

关于C 程序。指针和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37599768/

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