洁玉燕飞 4星
共回答了442个问题采纳率:98.1% 评论
本质上来说是一样的,不管是什么指针,其本质就是一个地址。但是在使用上还是有所不同的。
1 默认指向空间占用的大小不同。int *指向空间需要有4个字节,char*指向空间有一个字节就可以了。如果int*指向的空间不足,那么对其读写时就会出现越界操作。
2 使用时的可取值范围不同。用*取值时,int *得到的值是int类型的范围,而char *可以取到的值是char的返回。
3 赋值时范围不同。用*p形式赋值时,如果是int*型的,会按照int来截取;如果是char *型的,会按照char的范围来截取。比如int a, *pa=&a; char b, *pb = &b;执行*pa = 0x12345678后,*pa的值就是0x12345678。执行*pb =0x12345678后,*pb的值就会被截取,值为0x78。4 用于输出时结果不同。cout
2小时前
猜你喜欢的问题
2天前1个回答
2天前1个回答
2天前1个回答
2天前2个回答
2天前1个回答
2天前2个回答
热门问题推荐
1个月前1个回答
1个月前1个回答
3个月前1个回答
1个月前2个回答
2个月前1个回答
1个月前2个回答
1个月前1个回答
4个月前1个回答
1个月前3个回答