用指针计算数组元数个数和数组元素的存储单元数
时间: 2024-01-25 08:05:18 浏览: 60
计算数组元素个数:
```c++
int arr[] = {1, 2, 3, 4, 5};
int count = sizeof(arr) / sizeof(int); // 数组元素个数为5
```
计算数组元素的存储单元数:
```c++
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr[0]); // 数组元素的存储单元数为4(假设int类型占4个字节)
int bytes = sizeof(arr); // 数组的存储单元数为20(5个元素,每个元素占4个字节)
```
使用指针计算数组元素个数和数组元素的存储单元数:
```c++
int arr[] = {1, 2, 3, 4, 5};
int* p = arr; // 将指针指向数组的首元素
int count = sizeof(arr) / sizeof(*p); // 数组元素个数为5
int size = sizeof(*p); // 数组元素的存储单元数为4(假设int类型占4个字节)
int bytes = count * size; // 数组的存储单元数为20(5个元素,每个元素占4个字节)
```
相关问题
表示数组的指针加数字还是指针吗
表示数组的指针加数字仍然是一个指针。指针是一个变量,存储的是一个内存地址,指向某个数据类型的变量。在C语言中,数组名就是一个指向数组首元素的指针,所以数组名也可以被看作是一个指针。指针加上一个整数n之后,得到的是指针所指向内存地址的偏移量为n个存储单元的地址,这个新的地址仍然是一个指针。因此,表示数组的指针加数字还是一个指针。
C语言中指针和数组的加加
在C语言中,指针和数组的加加操作是有区别的。对于指针,加加操作是使指针指向下一个存储单元,即指针的值将增加它所指向类型的大小。而对于数组,加加操作是使数组下标加1,即指向数组的下一个元素。
举个例子来说,假设有一个整型数组int arr,我们可以定义一个指针指向该数组的首地址,如int *p = arr;然后使用指针的加加操作来访问数组元素,如*p++,这将使指针p指向下一个整数,并返回当前指针指向的整数值。