原始代码升级版本:
#include <stdio.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { int a=114; float b=1.2L; char c='A'; char str[] ="hello world"; printf("&a=%p ",&a); printf("&b=%p ",&b); printf("&c=%p ",&c); printf("&str=%p ",&str); int *a_ptr=&a; float *b_ptr=&b; char *c_ptr=&c; char *str_ptr=&str; printf(" "); printf("a_prt=%p ",a_ptr); printf("b_ptr=%p ",b_ptr); printf("c_ptr=%p ",c_ptr); printf("str_ptr=%p ",str_ptr); //定义一个指向指针的指针变量 int **a_ptr_ptr=&a_ptr; printf(" "); printf("a_ptr的地址%p ",&a_ptr); //a_ptr存的是a的地址,a_ptr_ptr存的是a_ptr的地址; printf(" "); printf("%s","a_ptr存的是a的地址,a_ptr_ptr存的是a_ptr的地址; "); printf("a_ptr_ptr的值=%p ",a_ptr_ptr);//指针的值是一个地址 printf("a_ptr_ptr指向的指针的地址:%p ",*a_ptr_ptr); printf("a_ptr_ptr指向的指针指指向的值=%d ",*(*a_ptr_ptr)); return 0; }
输出结果:
&a=000000000062FDFC &b=000000000062FDF8 &c=000000000062FDF7 &str=000000000062FDE0 a_prt=000000000062FDFC b_ptr=000000000062FDF8 c_ptr=000000000062FDF7 str_ptr=000000000062FDE0 a_ptr的地址000000000062FDD8 a_ptr存的是a的地址,a_ptr_ptr存的是a_ptr的地址; a_ptr_ptr的值=000000000062FDD8 a_ptr_ptr指向的指针的地址:000000000062FDFC a_ptr_ptr指向的指针指指向的值=114 -------------------------------- Process exited after 0.0395 seconds with return value 0 请按任意键继续. . .
由于本人是新学者,所以部分内容不保证正确性;