Pointer_4
程序员文章站
2022-06-23 13:36:49
...
#include <stdio.h>
#include <stdlib.h> // for system("pause");
int main()
{
char a[20] = "You_are_a_girl";
char *p = a;
char **ptr = &p;
printf("p = %d\n", p); // 输出地址的10进制表示
printf("p = %p\n", p); // 输出地址的16进制表示
printf("*p = %d\n", *p); // Y的ASCII码
printf("\n");
printf("ptr = %d\n", ptr); // 地址的10进制表示
printf("ptr = %p\n", ptr); // 地址的16进制表示
printf("*ptr = %d\n", *ptr); // 地址的10进制表示
printf("*ptr = %p\n", *ptr); // 地址的16进制表示
printf("**ptr = %c\n", **ptr); // 输出里面的值
printf("\n");
// ptr的类型是char**,指向的类型是char*类型,该指向的地址就是p的地址(&p)
// 当执行ptr++时,会使指针加一个sizeof(char*),即&p+4; p的类型是char*,
// 指向的类型是char,p所表示的只是a数组的首地址,在内存中用4个字节存放
// 所以&p+4,指向不知道,最后输出的会是一个随机值,或许是一个非法操作
ptr++;
printf("ptr = %d\n", ptr);
printf("ptr = %p\n", ptr);
printf("*ptr = %d\n", *ptr);
printf("*ptr = %p\n", *ptr);
getchar();
system("pause");
return 0;
}
上一篇: 斗殴的缘故起因
下一篇: python解析PDF程序代码
推荐阅读