数组初始化超界(c语言中char a[ ][3]={’123’,’1’} 是对的吗如果是错的 怎么错)
![数组初始化超界(c语言中char a[ ][3]={’123’,’1’} 是对的吗如果是错的 怎么错)](/static/images/content_image/infant-552610_1920.jpg)
本文目录
c语言中char a[ ][3]={’123’,’1’} 是对的吗如果是错的 怎么错
语法上是允许的。
char a={’123’,’1’}; 声明 a 是 char 型 2 维数组,并初始化。
第一维不定,由初始化值确定,第二维大小是 3。
根据初始化,可以定出 第一维是 1。
初始化用的是字符常量,但 ’123’ 数值超界,丢弃溢出部分,留下 ’3’.
所以 , 等于声明了:
char a={’3’,’1’,’\0’};
若打印:
int i; for (i=0;i《3;i++) printf("%c|",a); 将得到 3|1|空白|
输出格式里加了一条竖线,为了让你看见空格。
c语言中关于字符数组长度的问题
这个其实很简单,
你定义成
char c={"i am happy"};
相当于
char c={’i’,’ ’,’a’,’m’,’ ’,’h’,’a’,’p’,’p’,’y’,’\0’};
虽然后面的初始化时,给了11个数据,但实际上只有前10个相应赋给了c
最后一个 ‘\0’ 没有赋值给数组c了。
所以还是不会有问题。
另外,这个还与编译器有关,有的编译器这样会报错。数组超界。
![数组初始化超界(c语言中char a[ ][3]={’123’,’1’} 是对的吗如果是错的 怎么错)](/static/images/content_image/jellyfish-257860_1920.jpg)
更多文章:
lseek和fseek(read pread write pwrite fseek lseek是同一类函数吗)
2026年11月3日 08:30
字体大小在哪里调整(电脑字体大小在哪里调调电脑字体大小的方法)
2026年11月3日 04:40
网页页面设计的技巧有哪些?急求,jsp采用框架技术设计页面,如何写代码才能实现点击左侧框架内的链接,右侧框架内显示相应网页呢
2026年11月3日 03:00
selection是什么品牌(selection unique是什么葡萄酒)
2026年11月3日 01:50
四分之一x的补码怎么求(计算机组成原理,的原码补码什么,求解现在这些题目都看不懂了)
2026年11月2日 23:50
interpl(MATLAB中插值函数interpl怎么定义)
2026年11月2日 23:30





