c语言中char str1[10]=' ' 是什么意思

是对字符数组的初始化吗各元素的赋值是怎样的但是好像课本上没有给出这样初始化的示例这是在例题中出现的这样做规范吗... 是对字符数组的初始化吗 各元素的赋值是怎样的
但是好像课本上没有给出这样初始化的示例
这是在例题中出现的
这样做规范吗
展开
 我来答
听不清啊
高粉答主

2015-05-18 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
c语言中char str1[10]=' ';编译时是不能通过的。因为一个10个元素的字符数组,不能只给它赋值一个元素。
可以通过的是:
char str1[10]={' '};或
char str1[10]=" ";
这二种写法的结果是相同的。即:定义一个有10个元素的字符数组,并初始化,首字节为一个空格字符,后面的9个元素值为空字符('\0')。
yb_329
2012-03-22 · 超过29用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:87.9万
展开全部
这应该是非法的吧,我在VC6.0上试了,这样不行,单引号是给单个字符进行赋值的,如果改成:
char str1[10]=" "是可以的,但是这表示只是给str1[0]赋值了,其他的还没有初始化。
更多追问追答
追问
我们用的是DEV C++ 如果是char str1[10]=" " 这样应该是给str1这个字符串赋值吧
如果是字符数组中单个元素的赋值应该是' '没错
所以好像这两者混了
课本示例
char str1[10]=' ',str2[]={"china"};
strcpy(str1,str2);
这是在讲strcpy的用法
追答
书本也不一定都对,但是这个' '应该是错的没问题,我从没见过这样给一个字符数组赋值的,
还有char str1[10]=" "应该只是给str1[0]赋值了,后面的默认是空。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
burkwen
2012-03-22 · TA获得超过2523个赞
知道大有可为答主
回答量:1104
采纳率:100%
帮助的人:673万
展开全部
不可以。
规范的初始化写法为
char str1[10]="xxxx";
左边的str1是数组名,也是数组的头地址。右边的"xxxx"是字符串常量,也是一个地址。
等式两边都是地址,合情合理。

如果写成
char str1[10]=' ';
左边是地址,右边是字符(其实就是int),类型不匹配,编译都要报错的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
icecoobe
2012-03-22 · TA获得超过1989个赞
知道小有建树答主
回答量:1058
采纳率:100%
帮助的人:1109万
展开全部
不规范!

正确的做法是
1. char str[10] = "sss"; // 初始化的时候,编译器会自动在字符串最后加上 '\0'表示结束标志!
2. char str[10];
for (int i = 0; i < 10; i++)
str[i] = 0;

【注】's' 输入char型,其实也是int型,是无法给char数组初始化的 。。。编译会报错!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sepoljuc
2012-03-22
知道答主
回答量:30
采纳率:0%
帮助的人:12.7万
展开全部
意思是定义了名为str0,str1,str2和str3的四个数组,并且数组中的元素数据类型为char型(即字符型)。[]里为数组长度,即这个数组中有多少个元素,str0,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式