注册 登录
编程论坛 C++教室

请问红色部分发生了什么事情,能具体解释一下么

想飞的老虎 发布于 2014-09-02 14:29, 469 次点击
楼主是新手菜鸟,求大神解释一下
char a[20];
int *ptr=(int *)a;
7 回复
#2
wp2319572014-09-02 14:31
想干嘛呢
#3
k_misuzu2014-09-02 14:35
声明  赋值。。
#4
想飞的老虎2014-09-02 14:58
回复 2 楼 wp231957
就想知道为什么能够给一个整形指针初始化为字符型指针?
#5
wp2319572014-09-02 15:09
以下是引用想飞的老虎在2014-9-2 14:58:55的发言:

就想知道为什么能够给一个整形指针初始化为字符型指针?



所谓指针  其本质也就是一个长整型数值 比如 0,1,2,3,4,,,,,,这些数字都可以被当做一个指针来看待  只不过指向的内容是否有意义
是否可读写  这都不好说了
#6
小习小习2014-09-02 18:56
把字符指针a强制转换为整型指针赋给ptr
#7
stop12042014-09-03 08:52
红色是因为没给 a 初始化,因此a是未知的.
所以指针不能初始化指向未知的地方.

int *ptr=(int *)a;
int *p整型指针只是说明 这个指针声明指向的地址的类型是整型,即你cout<<*p 的时候输出是整数;
如果你是这样 char *p   则 cout<< *p  输出的是字符串.
#8
rjsp2014-09-03 09:13
贴篇文章给大家瞧瞧『类型双关(type punning)与严格别名(strict aliasing)』
http://blog.qt.
1