Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么是char*x=";“极客问答”;意思是_C++_C_Pointers - Fatal编程技术网

C++ 什么是char*x=";“极客问答”;意思是

C++ 什么是char*x=";“极客问答”;意思是,c++,c,pointers,C++,C,Pointers,我对编程相当陌生。我经常看到这个宣言。 比如说: char*x=“geeksquick” 这是否意味着x保存字符串第一个元素的地址,即字符“g” 如果是,那么考虑下面的例子: char *str1 = "geeks"; char *str2 = "forgeeks"; printf("str1 is %s, str2 is %s", str1, str2); 输出为: str1是极客,str2是伪造的 为什么printf语句打印str1是极客,而str2是伪造的,如果它们分别持有地址的话?

我对编程相当陌生。我经常看到这个宣言。 比如说:

char*x=“geeksquick”

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

如果是,那么考虑下面的例子:

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

str1是极客,str2是伪造的


为什么printf语句打印str1是极客,而str2是伪造的,如果它们分别持有地址的话?或者是占位符%s指示printf打印字符串文字?

如果在c语言中使用此占位符,则x保留字符串第一个字符“g”的地址。您可以使用此代码打印它

    #include<stdio.h>
    int main(){
    char *x="geeksquiz";
    printf("%c",*x);
    return 0;
    }
#包括
int main(){
char*x=“geeksquick”;
printf(“%c”,*x);
返回0;
}
产出:g

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

是占位符%s指示printf打印字符串文字吗

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



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

Yes。但是这不再是有效的C++。你在哪里遇到它?在你的C++书籍中?这是哪本书?轨道评论中伴随Lightness Races的强制抢占链接如果我需要打印字符串的其他字符,可能会重复什么?如果你想打印字符串的其他字符,那么增加指针如果你想打印第二个字符,那么写printf(“%c”,*(x+1);