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 i; for(i=0;i

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

int a[]; //这样不可以,不能确定元素个数。 int a[]={1,2,3,4,5}; //这样可以,因为从后面的初始化表中可以确定元素个数为5。

void func(int a[]) 你可以暂时看做等同于void func(int *a) 需要的是一个数组的首地址 数组名即为数组的首地址 a[0] a[1] 等等都是取值 而非地址 以你的定义来看 a[4]是访问非法地址,你只分配4个空间却访问第5个值,任何时候这种写法都是不允许的

等价于a=5,b=a+3,a=a+1;所以b=8 ++在表达式中,如果在前面就先自增,再参与运算;在后面就先参与运算,再自增; 如a=5,b=++a,相当于a=a+1;b=a; (b=6) a=5,b=a++, 相当于b=a; a=a+1;(b=5)

int a[3][3]={{1,2},{3,4},{5,6}} 不就是定义了一个3*3的数组,然后对他进行初始化,可以对全部元素初始化,也可对部分元素初始化,没初始化的默认为0; 第一行1,2,0 第二行3,4,0 第三行5,6,0 。。。这不是数组基础么。。。 简单的说,就...

赋值号结合性从右往左,返回值等于左值。 a+=a*=a-=a*=3相当于: a*=3; a-=a; a*=a; a+=a; 最后结果为0.

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