![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
变量的类型必须与指针变量的什么相同
1个回答
展开全部
指针变量的类型不是指指针变量本身的类型,而是指它所指向的变量的数据类型。无论何种类型的指针变量,它们都是用来存放地址的,因此指针变量自身所占的内存空间大小和它所指向的变量数据类型无关,尽管不同类型的变量所占的内存空间不同,但不同类型指针变量所占的内存空间大小都是相同的。
以下所有结果均在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,因为二者所指向的数据类型不同,直接相减的话程序会报错
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询