gpt4 book ai didi

与数组一起使用的 C 语言指针

转载 作者:太空宇宙 更新时间:2023-11-04 05:18:04 24 4
gpt4 key购买 nike

我编译并运行了以下代码,结果也如下所示。

#include <stdio.h> 
int main(void) {

char *ptr = "I am a string";

printf("\n [%s]\n", ptr);

return 0; }

** [我是一个字符串]**

我想了解如何在指针 char 中分配字符串。根据我的理解,指针只能保存一个地址,而不是一个完整的字符串。这里是一整句话。我不明白作为指针如何允许它以这种方式运行。

如果我更改上面示例中的以下代码行,

printf("\n  [%c]\n", ptr); 

它不会打印一个字符并停止。它所做的是打印出一个完全不在 ASCII 表中的无法识别的字符。我不明白这是怎么发生的。我希望能对这个问题有所了解。

最佳答案

As per my understanding the pointer can hold only an address, not a complete string

char *ptr = "I am a string";

是一个字符串文字,字符串存储在只读位置,存储数据的地址返回给指针ptr

It does not print one single charactor and stop. What it does is that it prints out an unrecognised character which is completely out of ASCII table. I do not understand how that too is happening

ptr 是一个指针,在 printf() 中使用错误的格式说明符会导致未定义的行为。

使用 %s 如果您提供存储字符串的地址,则 printf() 会打印出整个字符串

关于与数组一起使用的 C 语言指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28327378/

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