社区
C语言
帖子详情
数组最后一个元素后加了逗号却没问题
swl82560397pq
2010-01-15 12:24:58
#include<stdio.h>
void main(void )
{
int arrry[3] = {1,2,3};//c语言说的是这种情况
int array_a[3] = {1,2,3,};//没提到
}
上述程序没问题,为什么array_a{}3后加个逗号也是可以的呢?
...全文
2674
30
打赏
收藏
数组最后一个元素后加了逗号却没问题
#include void main(void ) { int arrry[3] = {1,2,3};//c语言说的是这种情况 int array_a[3] = {1,2,3,};//没提到 } 上述程序没问题,为什么array_a{}3后加个逗号也是可以的呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
30 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hejianli0310
2010-12-19
打赏
举报
回复
[Quote=引用 25 楼 swliao 的回复:]
引用 23 楼 hpsmouse 的回复:
引用 20 楼 swliao 的回复:
C/C++ code
#include"stdio.h"int main()
{int a[2]= {1,2,3};int m,n;for(m=0;m <3;m++)
printf("%d\n",a[m]);//输出结果好奇怪啊...int b[2]={1,2,3,};for(n=0;n ……
[/Quote]
在初始化的时候就是分别对a[0],a[1],a[2]进行赋值了。但开辟的空间只有前两个元素那么大.a[2]中存储的值并不是你想初始化的,那是他本身存储的数据.
z569362161
2010-01-15
打赏
举报
回复
楼主用的是VC88。
你们都问。
自己没有啊!
总问人家用什么?
tan870426
2010-01-15
打赏
举报
回复
[Quote=引用 8 楼 kouwenlong 的回复:]
可以加一个逗号,方便数组的后面追加元素。
[/Quote]LUA有这种用法。。。但C没有
最后的逗号应该是没用的 C的遗留问题?
sagegz
2010-01-15
打赏
举报
回复
为了格式一致,可以在后面加上,
楼主用的什么编译器?
kouwenlong
2010-01-15
打赏
举报
回复
可以加一个逗号,方便数组的后面追加元素。
swl82560397pq
2010-01-15
打赏
举报
回复
[Quote=引用 5 楼 taodm 的回复:]
你的书不够好,不是编译器的错。
C、C++就规定了可以有多余的一个,
[/Quote]
哪本书上有写,我在c primer plus暂时没找到
forster
2010-01-15
打赏
举报
回复
enum一般都多写一个,
方便以后加
数组貌似一样吧
taodm
2010-01-15
打赏
举报
回复
你的书不够好,不是编译器的错。
C、C++就规定了可以有多余的一个,
swl82560397pq
2010-01-15
打赏
举报
回复
VC 6.0
风吹草低现羊牛
2010-01-15
打赏
举报
回复
楼主什么编译器啊?
chenzhp
2010-01-15
打赏
举报
回复
利于自动化输出初始化列表?
pengzhixi
2010-01-15
打赏
举报
回复
是你编译器的问题。不加逗号也没事的。
jinjinClouded
2010-01-15
打赏
举报
回复
加不加都可以的。。。
swl82560397pq
2010-01-15
打赏
举报
回复
14#正解啊!
看来是要多查查msdn啊呵呵。顶
swl82560397pq
2010-01-15
打赏
举报
回复
[Quote=引用 26 楼 swliao 的回复:]
引用 25 楼 swliao 的回复:
引用 23 楼 hpsmouse 的回复:
引用 20 楼 swliao 的回复:
C/C++ code
#include"stdio.h"int main()
{int a[2]= {1,2,3};int m,n;for(m=0;m <3;m++)
printf("%d\n",a[m]);//输出结果好奇怪啊...int b[2]={1,2,3,};for(n=0;n <3;n++)
printf("%d\n",b[n]);//这个也不对..return0;
}
很奇怪的结果..是什么原因呢..
输出结果为:
1
2
2293680
1
2
2
是因为数组最后一个要保存'\0'吗..?这也不对啊..又不是字符串..
这有什么好奇怪的?
明显越界……
一个 int[2] 给了三个 int 来初始化,你的编译器竟然没报错,我倒是很奇怪。
你是不是搞错了啊..我这是数组的初始化呢..看清楚没有呢..?又不是赋值给a[2]..真是...
噢..我好像明白了..int a[2]表示只有2个int型元素..?意思是只有a[0]和a[1]..我以前一直以为是int a[2]表示有a[0],a[1]和a[2]三个元素呢..
My God...我以前写的代码..
[/Quote]
确实是my god啊!
swl82560397pq
2010-01-15
打赏
举报
回复
[Quote=引用 12 楼 z569362161 的回复:]
int array_a[3] = {1,2,3,};//但是我还是要批评你,研究什么不好,专门研究这个没意义的东西。
//以后不要这么写了。这么写是错误的。
[/Quote]
在代码中用宏控制的时候会碰到这个问题,没有跟有,那控制起来差很多。
不知名小ITer
2010-01-15
打赏
举报
回复
[Quote=引用 25 楼 swliao 的回复:]
引用 23 楼 hpsmouse 的回复:
引用 20 楼 swliao 的回复:
C/C++ code
#include"stdio.h"int main()
{int a[2]= {1,2,3};int m,n;for(m=0;m <3;m++)
printf("%d\n",a[m]);//输出结果好奇怪啊...int b[2]={1,2,3,};for(n=0;n <3;n++)
printf("%d\n",b[n]);//这个也不对..return0;
}
很奇怪的结果..是什么原因呢..
输出结果为:
1
2
2293680
1
2
2
是因为数组最后一个要保存'\0'吗..?这也不对啊..又不是字符串..
这有什么好奇怪的?
明显越界……
一个 int[2] 给了三个 int 来初始化,你的编译器竟然没报错,我倒是很奇怪。
你是不是搞错了啊..我这是数组的初始化呢..看清楚没有呢..?又不是赋值给a[2]..真是...
[/Quote]
噢..我好像明白了..int a[2]表示只有2个int型元素..?意思是只有a[0]和a[1]..我以前一直以为是int a[2]表示有a[0],a[1]和a[2]三个元素呢..
My God...我以前写的代码..
不知名小ITer
2010-01-15
打赏
举报
回复
[Quote=引用 23 楼 hpsmouse 的回复:]
引用 20 楼 swliao 的回复:
C/C++ code
#include"stdio.h"int main()
{int a[2]= {1,2,3};int m,n;for(m=0;m <3;m++)
printf("%d\n",a[m]);//输出结果好奇怪啊...int b[2]={1,2,3,};for(n=0;n <3;n++)
printf("%d\n",b[n]);//这个也不对..return0;
}
很奇怪的结果..是什么原因呢..
输出结果为:
1
2
2293680
1
2
2
是因为数组最后一个要保存'\0'吗..?这也不对啊..又不是字符串..
这有什么好奇怪的?
明显越界……
一个 int[2] 给了三个 int 来初始化,你的编译器竟然没报错,我倒是很奇怪。
[/Quote]
你是不是搞错了啊..我这是数组的初始化呢..看清楚没有呢..?又不是赋值给a[2]..真是...
zxlzym
2010-01-15
打赏
举报
回复
int[a];就表示分配了a个int型空间,初始化的个数大于a的话,编译器会有警告...但一样可以执行出来,出来的数据就是随机值...
楼主的问题:int array_a[3] = {1,2,3,};中初始化了四个元素,但还有一个你没有分配具体的空间,
这样的话,编译器会有一个警告但一样可以执行出来..
鼠
2010-01-15
打赏
举报
回复
[Quote=引用 20 楼 swliao 的回复:]
C/C++ code
#include"stdio.h"int main()
{int a[2]= {1,2,3};int m,n;for(m=0;m<3;m++)
printf("%d\n",a[m]);//输出结果好奇怪啊...int b[2]={1,2,3,};for(n=0;n<3;n++)
printf("%d\n",b[n]);//这个也不对..return0;
}
很奇怪的结果..是什么原因呢..
输出结果为:
1
2
2293680
1
2
2
是因为数组最后一个要保存'\0'吗..?这也不对啊..又不是字符串..
[/Quote]
这有什么好奇怪的?
明显越界……
一个 int[2] 给了三个 int 来初始化,你的编译器竟然没报错,我倒是很奇怪。
加载更多回复(10)
C++
最后
一个
数组
元素
后加
不加
逗号
,的
问题
(C++11 及以上的标准中,
最后
一
个元素
后面可以加
逗号
,也可以不加)
在 C++11 及以上的标准中,
最后
一
个元素
后面可以加
逗号
,也可以不加。两种形式都是合法的,具体选择哪种形式可以根据个人喜好和团队规范来决定。这代码看得我有点疑惑,
最后
一
个元素
后咋有个
逗号
呢?
Python:为什么只有一
个元素
的tuple要加
逗号
?
如果要定义一个空的tuple,可以写成(): >>> t = () >>> t () 但是,要定义一个只有1
个元素
的tuple,如果你这么定义: ''' 遇到
问题
没
人解答?小编创建了一个Python学习交流QQ群:778463939 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' >>> t = (1) >>> t 1 定义的不是tuple,是 1 这个数!这是因为括号()既可以表示tuple,
JavaScript-04
数组
的概念;创建
数组
;获取
数组
中的元素;遍历
数组
;
数组
中的新增元素;
数组
案例;函数一些使用方法;
学习内容:
数组
的概念;创建
数组
;获取
数组
中的元素;遍历
数组
;
数组
中的新增元素;
数组
案例;函数一些使用方法; 1 -
数组
1.1
数组
的概念
数组
可以把一组相关的数据一起存放,并提供方便的访问(获取)方式。
数组
是指一组数据的集合,其中的每个数据被称作元素,在
数组
中可以存放任意类型的元素。
数组
是一种将一组数据存储在单个变量名下的优雅方式。 1.2 创建
数组
JS 中创建
数组
有两种方式: 利用 new 创建
数组
var
数组
名 = new Array() ; var arr = new Arra.
【Matlab】如何把
数组
矩阵写入txt文件?并用
逗号
或空格隔开
Matlab 把
数组
写入txt,用
逗号
隔开,保留几位小数等等
去除字符串
最后
一个符号,
数组
转换
问题
去除字符串
最后
一个字符 all.substring(0, all.lastIndexOf(','));//将字符串
最后
面字符去掉 all为
数组
字符串转为
数组
。 var a = "1,22,33,44"; // 字符串 var b = a.split(","); // 将字符串按照","分割,存入
数组
b. // b
数组
中的值为:[1],[22],[33],[44] 这样遍历打印就不...
C语言
70,017
社区成员
243,265
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章