C语言,为什么字符串类型的数组,可以用数组名对数组进行整体输入个输出,请举例
展开全部
咱们分析下:
字符数组中如果保存的是字符串,比如
char tar[20] = "hello"; 要知道字符串默认的是以'\0'结尾的,所以这里隐含的最后还有一个'\0'
而printf("%s", tar); 这个语句,在执行的时候,是从tar指向的字符开始输出,一直输出直到遇到第一个'\0'为止。 所以会输出hello.
而如果tar[20] = {'h', 'e', 'l', 'l', 'o'};
那么这个时候printf("%s", tar);同样的还是从第一个元素开始输出,还是到‘\0'为止,但因为这里没有'\0'就还接着往后输出,而之后的内容,已经不再是该数组的空间,所以将会输出不可预测内容了。
字符数组中如果保存的是字符串,比如
char tar[20] = "hello"; 要知道字符串默认的是以'\0'结尾的,所以这里隐含的最后还有一个'\0'
而printf("%s", tar); 这个语句,在执行的时候,是从tar指向的字符开始输出,一直输出直到遇到第一个'\0'为止。 所以会输出hello.
而如果tar[20] = {'h', 'e', 'l', 'l', 'o'};
那么这个时候printf("%s", tar);同样的还是从第一个元素开始输出,还是到‘\0'为止,但因为这里没有'\0'就还接着往后输出,而之后的内容,已经不再是该数组的空间,所以将会输出不可预测内容了。
更多追问追答
追问
我的意思是为何字符串可以,其他类型就不可以用数组名输入输出
例如double
展开全部
int a; scanf("%d", &a);这里需要地址符&
char str[10]; scanf("%d", str); 可以理解为“地址”
char str[10]; scanf("%d", str); 可以理解为“地址”
追问
那输出可以举例不
追答
printf("%d,%s\n",a, str);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用flytomylife的回答:
咱们分析下:
字符数组中如果保存的是字符串,比如
char tar[20] = "hello"; 要知道字符串默认的是以'\0'结尾的,所以这里隐含的最后还有一个'\0'
而printf("%s", tar); 这个语句,在执行的时候,是从tar指向的字符开始输出,一直输出直到遇到第一个'\0'为止。 所以会输出hello.
而如果tar[20] = {'h', 'e', 'l', 'l', 'o'};
那么这个时候printf("%s", tar);同样的还是从第一个元素开始输出,还是到‘\0'为止,但因为这里没有'\0'就还接着往后输出,而之后的内容,已经不再是该数组的空间,所以将会输出不可预测内容了。
咱们分析下:
字符数组中如果保存的是字符串,比如
char tar[20] = "hello"; 要知道字符串默认的是以'\0'结尾的,所以这里隐含的最后还有一个'\0'
而printf("%s", tar); 这个语句,在执行的时候,是从tar指向的字符开始输出,一直输出直到遇到第一个'\0'为止。 所以会输出hello.
而如果tar[20] = {'h', 'e', 'l', 'l', 'o'};
那么这个时候printf("%s", tar);同样的还是从第一个元素开始输出,还是到‘\0'为止,但因为这里没有'\0'就还接着往后输出,而之后的内容,已经不再是该数组的空间,所以将会输出不可预测内容了。
展开全部
最佳答案好像有错,tar s[20]={'c','h'}
会把后边未定义的18个元素自动初始化为空字符。可以直接用字符串输出格式输出
会把后边未定义的18个元素自动初始化为空字符。可以直接用字符串输出格式输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询