int a[3][3]={1,2,3,4,5,6,7,8,9}; int (*ptr)[3]=a什么意思
时间: 2023-09-27 08:05:43 浏览: 51
`int a[3][3]={1,2,3,4,5,6,7,8,9};` 这行代码定义了一个二维数组a,其中a有3行3列,初始值为1-9。
`int (*ptr)[3]=a;` 这行代码定义了一个指向数组a第一行的指针ptr,其中`(*ptr)[3]`表示ptr指向的是一个含有3个int类型元素的数组。
可以将`(*ptr)[3]`理解为一个虚拟类型,用来表示指向数组的指针。其中,`*ptr`表示ptr指向的数组,`(*ptr)[3]`表示ptr指向的数组中含有3个元素。
需要注意的是,在将二维数组的行指针赋值给指针变量时,需要使用圆括号将指针类型括起来,以避免优先级问题。
相关问题
int a[5]={1,2,3,4,5}
以下是定义和初始化int数组a的两种方法:
1.定义并初始化一个长度为5的int数组a,其中元素分别为1,2,3,4,5:
```c
int a[5] = {1, 2, 3, 4, 5};
```
2.先定义一个长度为5的int数组a,再逐个为其赋值:
```c
int a[5];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
a[4] = 5;
```
int a(N)={1,5,8,7,6,3,2,4};
这不是一个合法的定义方式。如果你想定义一个数组并初始化它,应该使用以下方式:
```c++
int a[] = {1, 5, 8, 7, 6, 3, 2, 4};
```
或者
```c++
int a[8] = {1, 5, 8, 7, 6, 3, 2, 4};
```
这两种方式都可以定义一个有8个元素的整型数组,并将它们初始化为指定的值。注意,第二种方式需要显式指定数组的长度,并且长度必须与初始化列表中的元素个数相同。