字符指针类型转换成整型指针类型
int a=1;
char *b="abcd";
char c="v";
cout<<&b<<endl;//输出b的地址。
cout<<&c<<endl;//为什么输出结果不是c的地址。
cout<<(int *)b<<endl;//b为字符指针,转换成整型指针的结果是什么?
cout<<(void *)b<<endl;
cout<<(int *)(*(&b))<<endl;
[解决办法]
说说你那五行 cout 吧:
1. b 是指针,本身就是字符数组的首地址了,你输出的是这个指针(地址)的地址。
2. &c 是一个字符指针,cout 将其视为字符串输出。第一个肯定是 c,后面内容和长短视内存值而定。
3. 输出的是 b 这个指针(地址)的值(与 2 不同,2 输出的是这个地址的地址)。
4. 同 3 输出结果一样。
5. 和 3 是完全一样的。*(&b) 和 b 有什么不一样的?
[解决办法]
同意