[C++] 为什么指针需要有类型?

有一个问题,那就是既然指针都是4字节,为什么要有不同类型的指针,只有一个不就好了吗?
原因有两个:
1.为了地址增量的方便
看这个例子

#include<iostream>
using namespace std;
int main(){
	double b = 13;
	double *p_b = &b;
	int a = 9;
	int *p_a = &a;
	cout<<"char pointer: "<<p_b<<" "<<p_b+1<<endl;
	cout<<"int pointer: "<<p_a<<" "<<p_a+1<<endl;
	return 0;
}

double pointer: 0x22cc20 0x22cc28
int pointer: 0x22cc1c 0x22cc20

输出如上所示,double型的地址增量为8,而int型指针的地址增量为4,虽然一个指针的大小始终是四字节。如果没有指针类型,增量的大小是不是就要用户自己定义了呢?这样就很不方便了,有了类型,编译器就能很方便地帮用户做这件事了(当然用户也很方便了)。
2.为了类型安全
定义指针的类型帮助编译器发现你是否用了错误的类型,这也是C为什么要有类型的最初原因。

原文链接: https://www.cnblogs.com/drunknbeard/p/9502386.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    [C++] 为什么指针需要有类型?

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/279672

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 上午4:20
下一篇 2023年2月15日 上午4:20

相关推荐