基于我之前对char * str = "abc";的理解,str指向字符串常量“abc”,地址未知。
我把int *a = 1;理解成指针a指向常量1,地址未知。
其实并不是这样的。int *a = 1;表示指针a的地址为1,可以把它想象成int *a = (int *)0x80000000;不写强制转换符
做个试验证明一下。
int main()
{
int *a = 1;
char *b = "123";
printf("%p\n" , a );
printf("%p %s\n" , b , b );
return 0;
}
结果如下: