c语言中char str1[10]=' ' 是什么意思
是对字符数组的初始化吗各元素的赋值是怎样的但是好像课本上没有给出这样初始化的示例这是在例题中出现的这样做规范吗...
是对字符数组的初始化吗 各元素的赋值是怎样的
但是好像课本上没有给出这样初始化的示例
这是在例题中出现的
这样做规范吗 展开
但是好像课本上没有给出这样初始化的示例
这是在例题中出现的
这样做规范吗 展开
6个回答
展开全部
这应该是非法的吧,我在VC6.0上试了,这样不行,单引号是给单个字符进行赋值的,如果改成:
char str1[10]=" "是可以的,但是这表示只是给str1[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]赋值了,后面的默认是空。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可以。
规范的初始化写法为
char str1[10]="xxxx";
左边的str1是数组名,也是数组的头地址。右边的"xxxx"是字符串常量,也是一个地址。
等式两边都是地址,合情合理。
如果写成
char str1[10]=' ';
左边是地址,右边是字符(其实就是int),类型不匹配,编译都要报错的。
规范的初始化写法为
char str1[10]="xxxx";
左边的str1是数组名,也是数组的头地址。右边的"xxxx"是字符串常量,也是一个地址。
等式两边都是地址,合情合理。
如果写成
char str1[10]=' ';
左边是地址,右边是字符(其实就是int),类型不匹配,编译都要报错的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不规范!
正确的做法是
1. char str[10] = "sss"; // 初始化的时候,编译器会自动在字符串最后加上 '\0'表示结束标志!
2. char str[10];
for (int i = 0; i < 10; i++)
str[i] = 0;
【注】's' 输入char型,其实也是int型,是无法给char数组初始化的 。。。编译会报错!
正确的做法是
1. char str[10] = "sss"; // 初始化的时候,编译器会自动在字符串最后加上 '\0'表示结束标志!
2. char str[10];
for (int i = 0; i < 10; i++)
str[i] = 0;
【注】's' 输入char型,其实也是int型,是无法给char数组初始化的 。。。编译会报错!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
意思是定义了名为str0,str1,str2和str3的四个数组,并且数组中的元素数据类型为char型(即字符型)。[]里为数组长度,即这个数组中有多少个元素,str0,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询