编程论坛
注册
登录
编程论坛
→
C++教室
请问红色部分发生了什么事情,能具体解释一下么
想飞的老虎
发布于 2014-09-02 14:29, 469 次点击
楼主是新手菜鸟,求大神解释一下
char a[20];
int *ptr=(int *)a;
7 回复
#2
wp231957
2014-09-02 14:31
想干嘛呢
#3
k_misuzu
2014-09-02 14:35
声明 赋值。。
#4
想飞的老虎
2014-09-02 14:58
回复 2 楼 wp231957
就想知道为什么能够给一个整形指针初始化为字符型指针?
#5
wp231957
2014-09-02 15:09
以下是引用
想飞的老虎
在2014-9-2 14:58:55的发言:
就想知道为什么能够给一个整形指针初始化为字符型指针?
所谓指针 其本质也就是一个长整型数值 比如 0,1,2,3,4,,,,,,这些数字都可以被当做一个指针来看待 只不过指向的内容是否有意义
是否可读写 这都不好说了
#6
小习小习
2014-09-02 18:56
把字符指针a强制转换为整型指针赋给ptr
#7
stop1204
2014-09-03 08:52
红色是因为没给 a 初始化,因此a是未知的.
所以指针不能初始化指向未知的地方.
int *ptr=(int *)a;
int *p整型指针只是说明 这个指针声明指向的地址的类型是整型,即你cout<<*p 的时候输出是整数;
如果你是这样 char *p 则 cout<< *p 输出的是字符串.
#8
rjsp
2014-09-03 09:13
贴篇文章给大家瞧瞧『类型双关(type punning)与严格别名(strict aliasing)』
http://blog.qt.
1