c语言的数组的中括号中数字能否省略?什么时候可以省略? 5

 我来答
yql0105
2011-07-16 · TA获得超过730个赞
知道答主
回答量:150
采纳率:100%
帮助的人:220万
展开全部
在定义数组时同时初始化,括号中数字可省略,如:int a[]={1,2,3,4,5};这个数组大小是5,范围是a[0]到a[4],但是如果你希望定义一个长度是10的数组,但只初始化前5个数据,这时候必须带上数字,如:int a[10]={1,2,3,4,5};这时候a数组一共有10个数字,前5个是1到5,后5个是0

或者二维数组,可以省略行数,但不可以省略列数,如int a[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};这诗系统自动默认行数是3

还有就是形参中,可以省略一维数组的长度或者二维数组的行数,如:void fun(int a[],int b[][4]){//函数体神马的}这个函数中第一个参数是一维数组,只要实参传来一个一维数组即可接收到,不需要长度完全一样,同理,第二个参数也是,只要传来一个列数为4的二维数组即可

大概就以上3中情况吧希望对你有帮助
松甜恬0Je4ba
2011-07-16 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3408万
展开全部
可以省略
例如:
int a[] = {1,2,3,4,5};
编译器会根据后面的元素的个数来确定数组的范围。
在参数传递中,可以写成 void fun(int a[])
这种形式,因为参数传递中已经退化为指针了,元素的个数需要其他参数确定。

要大体说什么时候可以省略,那就是你能够保证编译器能够知道你数组的元素个数才能省略。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
银发淡浓香j
2011-07-16 · TA获得超过145个赞
知道答主
回答量:41
采纳率:0%
帮助的人:17.5万
展开全部
int a[]={.....}; 可以在定义的时候给出初始值。可省略。
int b[][5]={...}; 同上,但是第二个不能省略。
a[]=3; 这样做就不对了,里面没有定位,不能省略。
b[][2]=2; 同上,不能省略。

a[x]=3;这样做也对,但是要保证变量x的值正确。C不会自动给你查越界。你自己要小心。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-19
展开全部
int a[]=; 可以在定义的时候给出初始值。可省略。
int b[][5]=; 同上,但是第二个不能省略。
a[]=3; 这样做就不对了,里面没有定位,不能省略。
b[][2]=2; 同上,不能省略。

a[x]=3;这样做也对,但是要保证变量x的值正确。C不会自动给你查越界。你自己要小心。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ask_bd
2011-07-16
知道答主
回答量:13
采纳率:0%
帮助的人:7.9万
展开全部
C99标准以前:
声明时可以省略: extern int myArray[];
定义时包含初始化可以省略:int myArray[]={1,2,3,4,5,6,7,8,9,0};//根据初始化数组元素的多少而默认大小
形参中的数组不需要数字

C99标准:
可以用表达式确定数组大小: int myArray[*];//但只能是局部变量,而且goto语句将不能使用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式