C语言语句“char c[5]”是什么意思?

C语言语句“char c[5]”是什么意思?,第1张

这个是数组,char c[5]定义了一个名为C的字符数组!数组---“内存中连续的存储地址!”scanf(“%s”,c) //输入一个字符串,“只能输入5个字母”printf("%s",c) //输出字符串!

在字符串存储中最后都会加上一个结束符'\0'。所以存储5个字符的字符串应该要有6个空间。

所以char

c[5]="hello"

缺少结束符,但是调用c[0]~c[4]是可以正常使用的,但是使用strlen(c)、strcpy等时会出现错误,因为找不到结束标志。

char

c[6]="hello可以正常使用,因为有结束符'\0',c[5]='\0'

"54321" 是字符串,含字符串结束符"\0",需要6个单元存放,声明为[5],不足,改 char[][6] 便可。

如果编译器允许 char c[][5]={"1","54321"}

而且,运行中,不使用字符串方式,只使用字符变量方式,则没问题。如果使用字符串,涉及到结尾符时就有麻烦。

程序例子:

#include <stdio.h>

#include <stdlib.h>

main()

{

char c[][5]={"1","54321"}

int i,j

for (j=0j<2j++)

for (i=0i<5i++)

printf("%c ",c[j][i])

printf("\n===========\n") // 以上没问题

printf("%s %s\n",c[0],c[1]) // 这个 c[1] 输出有问题

return 0

}

MS VC++ 6.0 输出为:

1 5 4 3 2 1

===========

1 54321@

最后多了个@符号。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11962033.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存