佛山网站专业制作,可以建网站的软件,一般去哪个网站做写手,页面布局标准格式1、一个32位的机器#xff0c;该机器的指针是多少位的#xff1f;
指针是多少位只要看地址总线的位数就行了#xff0c;80386以后的机子都是32的地址总线#xff0c;所以指针的位数就是4个字节了。 2、指针加1#xff0c;结果是对该指针增加1个储存单位。
#xff08;…1、一个32位的机器该机器的指针是多少位的
指针是多少位只要看地址总线的位数就行了80386以后的机子都是32的地址总线所以指针的位数就是4个字节了。 2、指针加1结果是对该指针增加1个储存单位。
1“存储单位”指的是指针指向的数据类型所占的内存的字节数。不同类型的指针加1后增加的大小不同。
2例子 int main(void)
{int a[5]{1,2,3,4,5};int *ptr(int *)(a1);printf(“%d,%d”,*(a1),*(ptr-1));return 0;
}此时的输出是2,5。解释*(a1就是a[1]*(ptr-1)就是a[4]执行结果是25。 a1不是首地址1系统会认为加一个a数组的偏移是偏移了一个数组的大小本例是5个int int *ptr(int *)(a1)则ptr实际是(a[5])也就是a5 a是数组指针其类型为 int (*)[5]a是长度为5的int数组指针所以要加 5*sizeof(int)所以ptr实际是a[5] 但是prt与(a1)类型是不一样的(这点很重要prt指向的是整形)所以prt-1只会减去sizeof(int) a,a的地址是一样的但意思不一样 a是数组首地址也就是a[0]的地址a1是数组下一元素的地址即a[1], a是对象整个数组作为一个对象首地址而a1是下一个对象的地址即a[5].