gpt4 book ai didi

c++ - char *x = "geeksquiz"是什么意思?

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

我对编程还很陌生。我经常看到这个声明。 举例来说:

char *x = "geeksquiz";

这是否意味着 x 保存了字符串第一个元素的地址,即字符“g”?

如果是这样,请考虑以下示例:

char *str1 = "geeks"; 
char *str2 = "forgeeks";
printf("str1 is %s, str2 is %s", str1, str2);

输出是:

str1是极客,str2是极客

如果 printf 语句分别保存地址,那么为什么 printf 语句会打印出 str1 is geeks 和 str2 is forgeeks 呢?或者是占位符 %s 指示 printf 打印字符串文字?

最佳答案

Does this mean that x holds the address of first element of the string,i.e, the character 'g' ?

是的。

is it the placeholder %s that's instructing the printf to print the string literals ?

是的。

更具体地说,%s 不限于字符串文字。它用于打印以空字符结尾的字符串 - 即字符串文字。另外,它也称为格式说明符

<小时/>

考虑到您已经使用了该标记,请注意表达式 char *x = "geeksquiz"; 在 C++ 中格式不正确。在 C++ 中,字符串文字是 const char 的数组,它不会衰减为指向非 const char 的指针。它在 C 中格式良好,因为在该语言中字符串文字是非常量的。

关于c++ - char *x = "geeksquiz"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54276939/

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