西西河

主题:【求助】向各位高手请教一个c语言中数组与指针的问题 -- 数值分析

共:💬84 🌺26 新:
全看分页树展 · 主题 跟帖
家园 这个问题实在很有趣

数组名是什么?这是关键。这个东东不是指针,虽然有的书上说它是常数指针(const pointer),但叫它指针只能把读者彻底搞糊涂。见过一个指针满足 &p=p=*p 吗?要想真正理解多维数组,请运行下面的代码。

----------------------------------

int main()

{

int a[2][2], b[3][4][5];

a[0][0]=1;

b[0][0][0]=99;

// 2-dim example

printf("%d,%d,%d\n",a, (int *)a, (int **)a);

printf("%d,%d,%d\n",*a, *((int *)a), *((int **)a));

printf("%d,%d,%d\n",*a+1, *((int *)a)+1, *((int **)a)+1);

printf("%d,%d,%d,%d\n", &a,a,*a,**a); //Same output for &a, a, *a.

printf("%d,%d,%d,%d\n", &a+1,a+1,*a+1,**a+1); //Note the difference.

// 3-dim example

printf("%d,%d,%d,%d\n",b, (int *)b, (int **)b, (int ***)b);

printf("%d,%d,%d,%d\n",*b, *((int *)b), *((int **)b), *((int ***)b));

printf("%d,%d,%d,%d\n",*b+1, *((int *)b)+1, *((int **)b)+1, *((int ***)b)+1);

printf("%d,%d,%d,%d,%d\n", &b, b, *b, **b, ***b); //Same output for &b, b, *b, **b.

printf("%d,%d,%d,%d,%d\n", &b+1, b+1, *b+1, **b+1, ***b+1); //Note the difference.

}


本帖一共被 2 帖 引用 (帖内工具实现)
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河