C指針(3)——指向指針的指針(程序講解)
阿新 • • 發佈:2018-07-28
結果 [1] \n size urn 第一個字符 cpp 指針數組 字符
4-1.c多維數組的定義
#include<stdio.h> int main(void) { int i,j; int data[2][3]={{1,2,3},{4,5,6}}; //定義二維數組data,2行3列;並對其進行初始化 printf("data[2][3]:\n"); for(i=0;i<2;i++) { for(j=0;j<3;j++) { printf(" %d",data[i][j]); } printf("\n"); } return 0; }
上例子為(a)
結果(a):
data[2][3]: 1 2 3 4 5 6
對(a)進行修改:數組 int data[2][3]; 只定義不賦值。
結果(b):
data[2][3]: -858993460 -858993460 -858993460 -858993460 -858993460 -858993460
對(a)進行修改:數組 int data[2][3]={{1,2,3}};
結果(c):
data[2][3]: 1 2 3 0 0 0
對(a)進行修改: printf(" %d",&data[i][j]);
結果(d):
data[2][3]: 2227836 2227840 2227844 2227848 2227852 2227856
4-2.c指針的指針
#include<stdio.h> int main(void) { char *name[]={"Fujian","Huian"}; //定義指針數組name,並對其進行初始化 char **p_name; //定義指針的指針p_name printf("name[0]:%p\n",name[0]); //輸出指針數組元素name[0]的值,這裏是第一個字符串的首地址 printf("name[1]:%p\n",name[1]); printf("\n"); p_name=&name[0]; //把name[0]的地址賦值給p_name,即p_name指向name[0],因為name[0]的內容是地址,所以p_name是指向地址的指針變量,即指針的指針 printf("&name[0]:%p\n",p_name); //輸出p_name的值,即name[0]的地址 p_name=&name[1]; printf("&name[1]:%p\n",p_name); return 0; }
兩個地址:前一個是指針變量的內容,即被指針變量指向的數據的地址;後一個是指針變量本身的地址,這個地址就是指針的指針的內容。
結果:
name[0]:000E5788 name[1]:000E5780 &name[0]:002EF854 &name[1]:002EF858
C指針(3)——指向指針的指針(程序講解)