社区
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 : ']'
不明白其中原由,初始化改成赋值就不行了吗?
...全文
2161
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
打赏
举报
回复
你什么时候听说字符数组可以这样复制了
char* 函数 返回值使用,ascii码转int组合成的字符串
char* 函数 返回值使用,ascii码转int组合成的字符串#include #include #include #include using namespace std; static inline bool get_ascii_string(const string& name, char* get_char) { int i = 0, n; const char
QString格式之间的转换
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 1. QString 转 int bool ok; QString str1 = "0xf8"; int value1 = str1.toInt(&ok, 16); qDebug() << ok << " " << value1; // true 248 QString str2 = “012”; int value2 = str2.toInt(&ok, 10); qDeb
C++基本数据类型转换char(char*),int和string
1.string和int string-int采用标准库中atoi函数。 但是由于atoi函数要求的参数是char所以调用string的c_str函数将string转变为char figures.get(i-1) = atoi(figures.get(i-1).c_str())*atoi(figures.get(i+1).c_str()); int-string采用标准库中的to_string函...
C++中char型数组、string 和 int 的相互转换
//int->string int x1 = 312; string s1 = to_string(x); cout << s1 << endl; //string->int string s2 = "123456"; int x2 = std::stoi(s2); cout << x2 << endl; //char->string char c[80] = "1a2b3d4d"; string s3 = c; cout <<
(C语言)写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2)
写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2);设p1指向字符串s1,p2指向字符串s2.要求当s1=s2时返回值为0;若s1!=s2,返回它们二者第一个不同字符的ASCII码差值
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章