m*********a 发帖数: 3299 | 1 知道为啥下面会是这样的结果吗?
定义
char *ptr1[10];
可以
ptr1[0]="hello";
ptr1[1]="world";
...
...
ptr[9]="end";
可以看着10个rows的二维矩阵
但是无法进行ptr1[0][0]='X';
如果要进行这样的操作
可以定义
char (*ptr2)[10]
然后就可以进行 ptr2[0][0]='x'了。
但是无法进行
ptr2[0]="hello";
ptr2[1]="world"; |
m*********a 发帖数: 3299 | |
c****p 发帖数: 6474 | |
z*y 发帖数: 1311 | |
t****t 发帖数: 6806 | 5 你要知道了就解释一下呗.
【在 m*********a 的大作中提到】 : 知道为啥下面会是这样的结果吗? : 定义 : char *ptr1[10]; : 可以 : ptr1[0]="hello"; : ptr1[1]="world"; : ... : ... : ptr[9]="end"; : 可以看着10个rows的二维矩阵
|
m*********a 发帖数: 3299 | 6 其实这个比较容易理解
int *p[10]
就是10个指针array,每个array成员指向"一个"integer
int (*p)[10]
是每个指针指向一个10个integer的 array
所以p[0]是指向第一个array[10]
可以用p[0][0],p[0][1].....p[0][9]取值
p[1]是指向第二个array[10]
可以用p[1][0],p[1][1].....p[1][9]取值
【在 t****t 的大作中提到】 : 你要知道了就解释一下呗.
|
n*****t 发帖数: 22014 | 7 第二种不对
【在 m*********a 的大作中提到】 : 其实这个比较容易理解 : int *p[10] : 就是10个指针array,每个array成员指向"一个"integer : int (*p)[10] : 是每个指针指向一个10个integer的 array : 所以p[0]是指向第一个array[10] : 可以用p[0][0],p[0][1].....p[0][9]取值 : p[1]是指向第二个array[10] : 可以用p[1][0],p[1][1].....p[1][9]取值
|
t****t 发帖数: 6806 | 8 我就知道你没搞对...第二个是一个指针, 指向一个10个整数的数组. 当然, 这个指针缺
省情况下并不会指向分配过的内存.
【在 m*********a 的大作中提到】 : 其实这个比较容易理解 : int *p[10] : 就是10个指针array,每个array成员指向"一个"integer : int (*p)[10] : 是每个指针指向一个10个integer的 array : 所以p[0]是指向第一个array[10] : 可以用p[0][0],p[0][1].....p[0][9]取值 : p[1]是指向第二个array[10] : 可以用p[1][0],p[1][1].....p[1][9]取值
|
m*********a 发帖数: 3299 | 9 for a x rows matrix,initiate
p=malloc(rows*10*sizeof(int));
then use as p[0][0].....
针缺
【在 t****t 的大作中提到】 : 我就知道你没搞对...第二个是一个指针, 指向一个10个整数的数组. 当然, 这个指针缺 : 省情况下并不会指向分配过的内存.
|