变量的类型必须与指针变量的什么相同

 我来答
不是美女好烦c
2022-01-27 · TA获得超过269个赞
知道小有建树答主
回答量:1998
采纳率:75%
帮助的人:35.8万
展开全部

指针变量的类型不是指指针变量本身的类型,而是指它所指向的变量的数据类型。无论何种类型的指针变量,它们都是用来存放地址的,因此指针变量自身所占的内存空间大小和它所指向的变量数据类型无关,尽管不同类型的变量所占的内存空间不同,但不同类型指针变量所占的内存空间大小都是相同的。

以下所有结果均在VC++中运行,在DEVC++中运行时(int)p1-(int)p2所在语句报错

下图为int型指针变量的有关情况

在这里,在指针p1和p2前面加上(int)强制转换,实际上得到的是n1和n2这两个int型变量所在的内存首地址,即变量n1所在的内存首地址为1703724

p1-p2得到的是指针p1与p2之间的元素的个数

而(int)p1-(int)p2计算的则是n1与n2两个变量内存首地址的差值,这与sizeof计算出来的结果是一样的

用double类型的变量也是同样的结果

这里需要注意的是,不能用p2直接减p3,因为二者所指向的数据类型不同,直接相减的话程序会报错

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式