[Warning] cast to pointer from integer of different size

报错:[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

1.png

实验目的都是想经过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);
}

输出
1ast

图示
2.pngclass

1.2

代码

#include <stdio.h>                                
int main()                                         
{   
    int a=1;
    int *b = &a;
    int *c=(int*)&b;  // 请留意这里
    
    printf("%d\n",**(int**)c);
}

输出
1

图示
3.png

相关文章
相关标签/搜索