报错:[Warning] cast to pointer from integer of different size [-Wint-to-pointer-cast]
中译:[警告]把指针不一样大小的整数(-Wint-to-pointer-cast)
起源:看到了知乎这个问题指针的指针定义为何用int * ptr,而不是int ptr?,一会儿没反应过来。借此机会在温习一下指针。spa
文章描述了这两种差别化的写法3d
int a; int *b = &a; int **c = &b;
与指针
int a; int *b = &a; int *c = &b; // 请留意这里
差异在第三行:第一种写法用的是二级指针,通俗易懂;第二种写法比较骚。code
为了说明这个问题,我打算用这个图来讲明blog
实验目的都是想经过c来访问a,获得结果1get
1.1 it
代码io
#include <stdio.h> int main() { int a=1; int *b = &a; int *c=b; // 请留意这里 printf("%d\n",*c); }
输出1
ast
图示class
1.2
代码
#include <stdio.h> int main() { int a=1; int *b = &a; int *c=(int*)&b; // 请留意这里 printf("%d\n",**(int**)c); }
输出1
图示