我对编程很陌生。我经常遇到这个宣言。 例如说:
char *x = "geeksquiz";
这是否意味着x包含字符串的第一个元素(即字符'g')的地址?
如果是这样,请考虑以下示例:
char *str1 = "geeks";
char *str2 = "forgeeks";
printf("str1 is %s, str2 is %s", str1, str2);
输出为:
str1 is geeks, str2 is forgeeks
如果分别持有地址,printf语句如何打印str1是geeks和str2是forgeeks?还是占位符%s指示printf打印字符串文字?
答案 0 :(得分:1)
这是否意味着x包含字符串的第一个元素(即字符'g')的地址?
是的
是占位符%s指示printf打印字符串文字吗?
是的
更具体地说,%s不受字符串文字限制。它用于打印以null终止的sring-字符串文字是。另外,它称为格式说明符。
考虑使用标记,请注意表达式char *x = "geeksquiz";
在C ++中格式错误。在C ++中,字符串文字是const char的数组,并且不会衰减到指向非const char的指针。它在C语言中格式良好,因为在该语言中,字符串文字是非常量的。
答案 1 :(得分:0)
如果使用c语言,则x保留字符串首字符'g'的地址。您可以使用此代码进行打印。
#include<stdio.h>
int main(){
char *x="geeksquiz";
printf("%c",*x);
return 0;
}
输出:g