社区
C语言
帖子详情
关于字符数组赋值的问题
demephy
2006-01-05 09:09:35
我在vc里写
void main()
{
char arr[10] = "flat";
printf("%s",arr);
}
能通过编译并且运行,
但是如果改成
void main()
{
char arr[10] ;
char arr[] ="flat";
printf("%s",arr);
}
就会出错error C2059: syntax error : ']'
不明白其中原由,初始化改成赋值就不行了吗?
...全文
2089
16
打赏
收藏
关于字符数组赋值的问题
我在vc里写 void main() { char arr[10] = "flat"; printf("%s",arr); } 能通过编译并且运行, 但是如果改成 void main() { char arr[10] ; char arr[] ="flat"; printf("%s",arr); } 就会出错error C2059: syntax error : ']' 不明白其中原由,初始化改成赋值就不行了吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaoliang668
2006-01-10
打赏
举报
回复
char arr[]="flat"是正确的,但是你重复定义了arr 在编译的时候所以出错
houwhf
2006-01-10
打赏
举报
回复
。。。
////
TryBoYang(穷人)
可以呀.
char arr[]="flat"是正确的.
编一下就知道了.不过以后arry[]数组的长度为5;
/////
char arr[]="flat"
这是定义` 定义一个数组并在定义的时候初始赋值
char arr[10]; //这也是定义一个数组,但是不赋值
// arr[]="flat" //这是想对已经定义的数组赋值,但是是错误的用法
strcpy(arr,"flat"); //这样赋值才行的
arr[0]='f';arr[1]='l';arr[2]='a';arr[3]='t';arr[4]='\0';//不觉得累这样也成
arr[]只可能出现在数组定义的时候并且要对定义的数组赋值,这时会根据你的赋值自动判断数组的大小
TryBoYang
2006-01-09
打赏
举报
回复
可以呀.
char arr[]="flat"是正确的.
编一下就知道了.不过以后arry[]数组的长度为5;
whyglinux
2006-01-09
打赏
举报
回复
字符数组是数组类型,而对于数组类型的对象在程序中是不能直接被拷贝的,因为在程序运行的时候数组的长度是未知的。但是,在编译期间数组的长度是已知的,所以可以用常量字符串对字符数组进行初始化。
zw24127
2006-01-09
打赏
举报
回复
arr[] ="flat";不可以这样写的,你见过没有下标又带有[]的吗?
对数组操作最好用各种函数:strcpy,strlen什么的!!!!!!
iwantfat
2006-01-09
打赏
举报
回复
#include<stdio.h>
int main()
{
char arr[10] ; //
char arrr[] ="flat";/* arr[] 与上面的arr[10]重复定义了,改一下名字就好。*/
printf("%s",arrr);
getchar();
}
--------------------------
char arrr[] 其实与char * arrr 是等价的
fytzzh
2006-01-09
打赏
举报
回复
字符数组要用strcpy函数赋值.
chengzanmiao
2006-01-06
打赏
举报
回复
第一个是数组的初始化,第二个是数组的赋值.没有哪个字符串或责数组是这样赋值的.
加[]说明是数组名,声明的时候[N]里面的数字就是数组的总的元素个数为N个,以后想要数组里面的哪个元素直接从0到N-1里面选择就行了.当数组名后不带[]时已经蜕化成指针了`!~
demephy
2006-01-05
打赏
举报
回复
另外问一下什么时候数组名后面需要加上[]空括号?什么时候不需要加这个空括号?这个我一用的时候就不明白怎么写?
demephy
2006-01-05
打赏
举报
回复
不好意思第二个程序写错了
多写了个char
应该是
void main()
{
char arr[10] ;
arr[] ="flat";
printf("%s",arr);
}
xgbing
2006-01-05
打赏
举报
回复
你重定义arr了
怎样定义是编译器的规范,如果你写编译器,就可以用你想定义的方法了
demephy
2006-01-05
打赏
举报
回复
我的意思是第一个程序
void main()
{
char arr[10] = "flat";
printf("%s",arr);
}
不也是用了arr[10] = "flat";吗?
只不过它是在初始化时用的赋值等号,有什么不同吗?
按照你们说的,那一般的数组都不能用=赋值吗?
sms88
2006-01-05
打赏
举报
回复
char arr[10] ;
char arr[] ="flat";
你想重复定义啊
demephy
2006-01-05
打赏
举报
回复
那为什么初始化里那样写怎么可以?
sankt
2006-01-05
打赏
举报
回复
char arr[10] ;
strcpy(arr,"flat"); //这样赋值才行的
printf("%s",arr);
ma100
2006-01-05
打赏
举报
回复
你什么时候听说字符数组可以这样复制了
青少年C++编程NOIP/CSP竞赛通关语法-
字符数组
本课程为零基础C++语法专题课,是青少儿参加信息学奥赛NOIP/CSP需要学习的语法专题课;2、本课程每节课均配有练习题以及真题,以锻炼孩子的解题能力;3、本课程是基于小学生的认知发展水平开发的,运用孩子生活中常见的例子来阐述编程知识,让孩子听得懂学得会;4、学完本课程后,孩子可以自主编程,解决竞赛中,生活实际
问题
,5、拓展孩子计算思维,应对人工智能时代的挑战。6、本课程介绍的是
字符数组
。也是历来竞赛重要考点。
如何给给
字符数组
赋值
要说C语言中最让我觉得棘手的,就是
字符数组
的,C语言中没有字符串这个类型,字符串只能存放在字符型数组中。那么,我们先来看看如何给一个一维数组
赋值
:1、定义的时候直接
赋值
:char arr[10] = {"kitty"};这种写法也可以直接省略花括号,直接写成:char arr[10] = "kitty";2、初始化列表,把各个字符依次赋给数组中的元素:char arr[10] = {'k','i',
1.C语言基础-给
字符数组
赋值
1.定义
字符数组
定义时直接初始化 定义
字符数组
定义时直接初始化,下面例子中直接将字符串123456的首地址
赋值
给a char a[6]=“123456”; 需要注意的是,在定义之后,不可以在对a数组使用字符串直接初始化,如下 char a[6]; a = "123456" a是一个静态数组,在C语言中其在编译期间为一个常量表达式,而常量表达式可以当做是常量来使用,所以不能对于a进行指针
赋值
操作,既然这样是错误的,这么对于
字符数组
进行
赋值
呢 2.
字符数组
单个字符的
赋值
操作 最简单的方法是通过for循环,使
c 语言定义2维字符串数组
赋值
,二维数组
赋值
字符串 c 语言 二维字符串数组
赋值
问题
...
C语言中二维
字符数组
应该怎样
赋值
?c语言二维数组如何定义字符串????急。。。二维
字符数组
的定义格式为:char 数组名[第一维大小][第二维大小]; 例如:char c[3][10]; //定义了一个3行10列的二维
字符数组
c 由于该二维数组的每一行 c[0]、c[1]、c[2] 均是含有 10 个元素的一维
字符数组
。1.用一个循环语句就可以了。例如: char *a[3]={"1","23",...
C语言(C++)如何给
字符数组
赋值
1、char c[5]; c[0]=’H’; c[1]=’e’; c[2]=’l’; c[3]=’l’; c[4]=’o’; 2、charc[5]={‘H’,’e’,’l’,’l’,’o’}; 3、(1)如果在定义
字符数组
时不进行初始化,则数组中各元素的值是不可预测的; (2)如果花括号中提供的初值个数(即字符个数)大于数组长度,则按语法错误处理; (3)如果花括号中提供的初值
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章