int a[5]={0}; sizeof(&a+1)等于多少,为什么
时间: 2024-04-15 21:26:56 浏览: 23
sizeof(&a+1)的结果是指针类型的大小,因为&操作符返回的是指向数组a的指针。在这种情况下,&a是一个指向整个数组a的指针,而不是指向数组中第一个元素的指针。因此,对&a进行加法操作会导致指针的值增加sizeof(int[5])个字节,因为数组a有5个元素,每个元素的大小为sizeof(int)。所以sizeof(&a+1)将返回sizeof(int[5])的大小。
相关问题
在32位系统C语言编程中,int a[5]={0}; sizeof(&a+1)等于多少,为什么
在32位系统的C语言编程中,int是4个字节大小。对于数组a来说,每个元素是int类型,因此占用4个字节。因此,整个数组a占用20个字节(5个元素 * 4个字节/元素)。
在表达式sizeof(&a+1)中,&a是一个指向数组a的指针。指针在32位系统中通常是4个字节大小。当将指针&a与整数1相加时,指针会增加1*sizeof(int[5]),也就是20个字节。
所以sizeof(&a+1)的结果是20,因为表达式中的指针大小为20个字节。
#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <string.h> #include <stdio.h> void main(void) { int a[10]; //a代表的是数组首元素的地址 &a代表整个数组的地址 a+1 4 &a+1步长 40 . // { //定义一个数组类型 typedef int(myTypeArray)[10]; // myTypeArray myArray; myArray[0] = 10; myArray[1] = 11; printf("%d \n", myArray[0]); printf("%d \n", myArray[1]); } { //定义一个指针数组类型 typedef int(*PTypeArray)[10]; //int *p PTypeArray myPArray; //sizeof(int) *10 myPArray = &a; //int b = 10; //int *p = NULL; //p = &b; (*myPArray)[0] = 20; printf("a[0]: %d \n", a[0]); } { //定义一个指向 数组类型的指针 数组类的指针 int(*MyPointer)[10]; //变量 告诉C编译器 给我分配内存 MyPointer = &a; (*MyPointer)[0] = 40; printf("a[0]: %d \n", a[0]); } printf("hello...\n"); system("pause"); return; }
这段代码主要涉及了数组和指针的定义与使用。首先定义了一个整型数组a,其大小为10。然后通过&a可以获取整个数组的地址,而a+1则代表数组首元素地址+4个字节(因为int类型占4个字节)。接下来使用typedef定义了一个名为myTypeArray的数组类型,再创建了一个名为myArray的数组变量,并对其进行了初始化并输出了前两个元素的值。
接着定义了一个指向数组类型的指针PTypeArray,使用了myPArray指向了数组a。由于myPArray的类型是指向数组类型的指针,因此需要使用(*myPArray)[0]来访问数组a中的第一个元素,并将其赋值为20,并输出了a[0]的值。
最后使用int(*MyPointer)[10]定义了一个指向数组类型的指针MyPointer,同样使用MyPointer指向了数组a,并将其第一个元素的值赋为40,并输出了a[0]的值。
最后输出了一句话"hello...",并使用system("pause")来暂停程序的执行,等待用户按下任意键结束程序。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)