这里的 int a = 023; 等同于 int a = 19; 或 int a = 0X13;
int a[2][3],*p[3];是int a[2][3];,int *p[3];的意思,前者是声明一个2行3列的int型二维数组,a代表a[0]的地址&a[0],显然a就是下标为0的那“一行”的地址,即a是一个int **型指针;后者p是一个有3个元素的数组,每一个元素都int *型指针,自然p[0]就是int *型指针。看...
>>>首先,这相当于两个变量定义语句: int a[2][3]; int *p;所以第二个标识符p是int *类型没有疑问,这是教科书上讲的;此时p是一个指向int型数据的指针变量。>>>对于int a[2][3]的理解,可以把 int [3]看作一个整体,意为由三个连续整型数据组成的单元;而a[2]是一个数组,由两...
你这里如果是定义变量a的话,是不行的,int a=(2,3);倒是可以,你不带括号是编译不过去的。带了括号的话,2,3是一个逗号表达式,从左往右执行,表达式的值为3,即定义了a=3.
其实pa是一个指向(包含3个元素的)一维数组的指针,因此可以指向任何一个包含3个元素的一维数组 而a[2][3]是二维数组,可以看作是由a[0]和a[1]两个包含三个元素的一维数组组成,如a[0]就可以认为是包含a[0][0]、a[0][1]、a[0][2]三个元素的一维数组a[0]这样就可以理解pa=a的意义了...
6个,这是个二维数组。
这个是一个二维数组,最外面的括号就是总的数据 里面的每个括号都是下标中1的内容,举个例子 你上面的 哪样的话 那就是a[0][0] = 1; a[0][1]=2; a[0][2] 没赋值 a[1][0] = 4 ; a[1][1]= 5;其他的都没赋值
这里a[2][3]代表的是2行3列,而你赋值的时候是3行2列,就是说你的行数越界了,所以是不行的,行数只能小于等于2,列数只能小于等于3,希望你能理解
a是二维数组名,也是二维数组0行的首地址。a[0]是第一个一维数组的数组名和首地址*(a+0)或*a是与a[0]等效的,它表示一维数组a[0]0号元素的首地址。&a[0][0]是二维数组a的0行0列元素首地址。同理,a+1是二维数组1行的首地址,由此可得出:a+i,a[i],*(a+i),&a[i][0]是...