#include <stdio.h>
//经典的错误。定义了一个指针,在另外一个文件中被定义成了数组
// another file
// char* p = "Hello World!";
//数组是不用寻址的,而地址是需要寻址的
extern char p[];//这个操作获取的是p本身的地址,而不是指针指向的地址,所以如果打印,那么打印的就是hello world的地址
int main()
{ //unsigned int*.将p里面的值强制转换为指针
//再加*,取值
//char * 让字符串hello world作为指针输出就行了
printf("%s\n", (char*)(*(unsigned int*)p));
//代码原则,声明为一个指针,在外部定义的时候也需要定义为指针
//代码原则,声明为一个数组,在外部定义的时候也需要定义为数组
return 0;
}
数组和指针的典型bug
最新推荐文章于 2021-12-17 14:53:06 发布