c语言指针数组取长度
时间: 2024-10-15 10:25:47 浏览: 24
在C语言中,如果你有一个指向整型数组的指针,想要获取这个数组的长度,通常有两种方法:
1. **通过`sizeof`运算符**:
如果你知道数组名后的方括号中的数字是元素数量(即连续的整数),你可以简单地做如下的计算:
```c
int arr[] = {1, 2, 3, 4, 5};
size_t length = sizeof(arr) / sizeof(arr[0]);
```
`sizeof(arr)`会给出整个数组占的字节数,除以单个元素的大小得到元素的数量。
2. **通过遍历**:
如果数组不是预定义长度,且没有显式的索引信息,你需要遍历数组直到找到NULL或其他已知的结束标记:
```c
int *ptr = array; // 假设array是指向数组的首地址
size_t length = 0;
while (ptr[length] != NULL || ptr[length+1] != '\0') {
length++;
}
```
这里假设数组最后一个元素是空终止符'\0'或者NULL。
相关问题
c语言数组指针和指针数组
C语言中,数组指针和指针数组都是指针类型,但它们的含义和使用方法不同。
数组指针是指向数组的指针,我们可以通过数组指针来访问数组中的元素。数组指针的声明方式为:类型 (*指针变量名)[数组长度],例如:
```
int arr[3] = {1, 2, 3};
int (*p)[3]; // 声明一个指向长度为3的int数组的指针变量
p = &arr; // 指针指向数组arr
```
指针数组是一个数组,其中的每个元素都是指针类型。指针数组的声明方式为:类型 *指针变量名[数组长度],例如:
```
int a = 1, b = 2, c = 3;
int *arr[3] = {&a, &b, &c}; // 声明一个指针数组,其中的元素都是int类型的指针
```
需要注意的是,数组指针和指针数组都可以通过下标来访问元素,但其访问方式不同。对于数组指针,我们可以通过指针变量名加上下标来访问,例如:`(*p)[0]`;对于指针数组,我们可以通过下标加上指针变量名来访问,例如:`arr[0]`。
c语言数组如何把一串数字存入数组_C语言 指针 (三)指针数组与数组指针
要把一串数字存入C语言数组中,可以使用如下代码:
```c
int arr[10]; // 定义长度为10的整型数组
int i;
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]); // 从键盘读入数字并存入数组中
}
```
这样就可以从键盘读入10个数字,存入数组arr中。
需要注意的是,数组下标从0开始,因此数组长度为10时,下标范围是0~9。
另外,如果要使用指针来操作数组,可以使用数组名作为指针变量,例如:
```c
int arr[10]; // 定义长度为10的整型数组
int *p = arr; // 数组名作为指针变量
```
这样就可以通过指针p操作数组arr。
而指针数组与数组指针是两个不同的概念。
指针数组是指一个数组,其中的每个元素都是一个指针变量。例如:
```c
int *arr[10]; // 定义长度为10的指针数组
```
数组指针是指一个指针变量,它指向一个数组。例如:
```c
int (*p)[10]; // 定义一个指向长度为10的整型数组的指针变量
```
阅读全文