社区
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 : ']'
不明白其中原由,初始化改成赋值就不行了吗?
...全文
2146
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语言之
字符数组
在if{}里面
赋值
给char *引发的
问题
1
问题
我的buff在if{}里面,然后对buff进行内存操作,最后
赋值
给char *类型的url,发现url最后没有得到数据 如下代码 #include <stdio.h> #define TRUE 1 void set_value(char *p) { *p = 'c'; *(p + 1) = 'h'; *(p + 2) = 'e'; *...
结构体中
字符数组
赋值
字符串
问题
原文链接:https://blog.csdn.net/baidu_39774741/article/details/77096792 今天在看结构体变量时发现一个
问题
:
问题
代码如下 int main() { struct student{ char c[20]; }s1; s1.c="china"; printf("%s",s1.c); ...
字符数组
与字符串
赋值
问题
产生这个错误的原因:[Error] assignment to expression with array type
字符数组
与字符串
赋值
问题
(1)数组不能直接给数组
赋值
(2)指针不能直接给数组
赋值
根本原因: 数组名在内存中是一个类似于常量的存在,可以理解为const,在编译的时候就已经给分配的储存位置,在需要使用到数组名时,直接获取的就是一个地址值,因此是不能改变的。 char c[3] = a; //错误---》数组不能直接给数组
赋值
char d[3] = p; //错误---》指针不能
[C语言]给一个二维
字符数组
赋值
的
问题
二维
字符数组
的
赋值
对结构体中
字符数组
赋值
时,出现表达式必须是可修改的左值的
问题
问题
描述: 在C++中为结构体中的
字符数组
赋值
时,出现”表达式必须是可修改的左值“的错误提醒,编译报错“不可指定数据类型”。
问题
分析: 结构体中定义的数组:char brand[20],使用 t->brand="adc"是无法进行
赋值
的。因为brand是
字符数组
名,而“adc”字符串常量,
字符数组
名不无法修改的! 可以在对结构体初始化时用字符串常量进行
赋值
...
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章