int main(){
int b = 123;
int* a = b; //上面的
//int* a = &b; 下面的
printf("%d",a);
return 0;
}
用clion编译以上代码,上面的输出123,下面的输出一个貌似内存地址的int类型的值。下面的可以理解,上面的写法有点懵逼,为什么可以那样写,而且可以编译通过,没有warning。
PS: 确实有warning!!!
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它是一个用于存储地址的变量,被你们称为指针变量