C语言指针与指向指针的指针
#include <stdio.h> #include <string.h> int main() { char a[]="hello world"; char *p=a; char **ptr=&p; printf("a=%s\n",a); printf("&a=%d\n",&a); printf("p=%d\n",p); //p为a的地址 printf("*p=%c\n",*p); //*p为字符a[0] printf("ptr=%d\n",ptr); //ptr为p的地址 printf("*ptr=%d\n",*ptr); //*ptr为p的地址保存的值,即a的地址 printf("**ptr=%c\n",**ptr); //**ptr为a的地址保存的值,即字符a[0] printf("sizeof(a)=%d\n",sizeof(a)); printf("sizeof(p)=%d\n",sizeof(p)); printf("sizeof(*p)=%d\n",sizeof(*p)); printf("sizeof(ptr)=%d\n",sizeof(ptr)); printf("sizeof(*ptr)=%d\n",sizeof(*ptr)); printf("sizeof(**ptr)=%d\n",sizeof(**ptr)); return 0; }
另外,从上述代码中sizeof部分可以看出各变量的类型,指针类型占4字节,字符类型占1字节.
debug:
输出: