mtwm.net
当前位置:首页 >> 请问C语言中 int A[3 ] [ ] 为什么是错误的定义 >>

请问C语言中 int A[3 ] [ ] 为什么是错误的定义

二维数组中行数可以不规定,列数一定要规定。 比如 int a[][3] 或 int a[3][3]

这个语句试图定义一个拥有3行而列数不固定的二维数组,但由于编译器要求多维数组的除最高维度外的每个维度都必须为已知量,因此事实上这句话不能通过编译。

int *a[3] 和 int *(a)[3]没有区别,这个括号是多余的。 如果你问的是int *a[3] 和 int (*a)[3]的区别,则: (1)int *a[3] 中 a是数组,数组中每个元素是个int类型的指针; (2)int (*a)[3]中 a是指针,这个指针指向一个长度是3的int类型数组...

注意分清声明和定义的概念!! int a[5];这是声明 这个时候 数组里面的内容是混乱随机的不是0 ! int a[5] = {1,2,3};这是定义 这个时候,对应位置的内容被初始化 其他没有设值的,被编译器补成0了。

不可以 =是赋值 只有先将a,b,c三个变量都声明的情况下 才能进行赋值操作 否则你int a=b 相当于声明一个整型a然后将一个未声明类型的变量b赋值给a 这句话很明显是错的!

A.int a[] ={0,1,2,3,4,5}; B.int a[5]={0,1,2,3,4,5}; C.char a= "string"; D.int a[]="string"; 首先A是正确的虽然没有值定数组长度可是会自动确认长度。 B的问题是初始化元素的个数超过了定义的个数 C的问题是将一个字符串的首地址赋值给一个...

C语言中,赋值号左边只能是变量,而不能是表达式,答案A中,最右边的赋值号它左边是一个表达式(因为b=4使用了括号)而不是变量,所以是错的

/*需要定义一个变量,代码修改如下*/float a; /*定义一个浮点型a*/a=12.3/4; /*给a赋值一个表达式的值*/int (a); /*将浮点型a强制转换为整形*/

int a[][3]={1,2,3,4,5};合法的实际中这个赋值等于a[0][3]={1.2.3}a[1][3]={4,5,0}这样系统会自动安排对应的位置

只要你的表达式弄成整型可以,亲测。因为一个表达的值是表达式类型的,类型不匹配 int a[3]={(int)(3*1)};

网站首页 | 网站地图
All rights reserved Powered by www.mtwm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com