int main(){ int b = 123; int* a = b; //上面的 //int* a = &b; 下面的 printf("%d",a); return 0; }
用clion编译以上代码,上面的输出123,下面的输出一个貌似内存地址的int类型的值。下面的可以理解,上面的写法有点懵逼,为什么可以那样写,而且可以编译通过,没有warning。
PS: 确实有warning!!!
你说能编译过,应该截图出来!!!
int b = 123;int 类型b 变量的名字123 值
变量的名字,其实它是地址的助记符,当它被编译器处理后,会变成一个地址,是一个虚拟地址,cpu运行后时,会拿这地址转换为物理地址。
而你的程序用gcc编译必然会warnning
指针其实只是一个地址,而*a它是一个用于存储地址的变量,被你们称为指针变量
2.1m questions
2.1m answers
60 comments
57.0k users