c语言数组地址放入到变量中
时间: 2023-09-22 15:06:34 浏览: 103
在 C 语言中,数组名本身就代表了数组的首地址,可以直接将其赋值给一个指针变量。例如:
```c
int arr[5] = {1, 2, 3, 4, 5};
int *p = arr; // 将数组名 arr 赋值给指针变量 p,相当于 p = &arr[0]
```
这样,指针变量 p 就指向了数组的第一个元素,可以通过指针变量 p 访问数组中的元素。
如果要将数组的地址存储在一个普通变量中,可以使用取地址运算符 `&`,例如:
```c
int arr[5] = {1, 2, 3, 4, 5};
int *ptr;
ptr = &arr[0]; // 将数组的首地址赋值给指针变量 ptr
```
或者直接将数组名作为参数传递给函数,因为数组名本身就是数组的地址。例如:
```c
int arr[5] = {1, 2, 3, 4, 5};
void func(int *p) {
// ...
}
func(arr); // 将数组名 arr 作为参数传递给函数
```
相关问题
51单片机数组里怎么放入变量名
在51单片机中,由于其有限的数据类型和内存结构,我们通常不会直接像C语言那样将变量名存入数组。变量名本质上是文本信息,而单片机内部是存储机器码的,所以不能直接操作变量名。
如果你需要存储一些数据并希望通过名字来访问它们,你可以创建一个包含实际数值的数组,并为每个数值分配一个标识符或名称。例如:
```c
char variableNames[5] = {"value1", "value2", "value3", "value4", "value5"}; // 假设我们有5个变量
int values[5] = {0, 0, 0, 0, 0}; // 对应的值
// 然后通过名字获取对应的值
int valueFromName;
strcpy(valueFromName, variableNames[index]); // 将名字复制到字符串,然后转换为函数查找值
valueFromName[strlen(valueFromName)-1] = '\0'; // 删除潜在的'\0'结束符
int foundValue = atoi(valueFromName); // 转换回整数
values[index] = foundValue; // 设置对应位置的值
```
这只是一个示例,实际上51单片机可能会更复杂,因为它的资源有限,处理字符字符串的方式也有所不同。记住,这样的设计更多的是为了程序的易读性和调试方便,而非性能优化。
怎么将D501,D502,D503写进C语言数组
将D501、D502、D503写进C语言数组可以采用如下方法:
1. 声明一个数组变量,比如:int array[3];
2. 将D501, D502, D503按照顺序放入数组中,例如:array[0] = D501; array[1] = D502; array[2] = D503;
完整的C代码如下:
```
#include <stdio.h>
int main()
{
int array[3];
int D501 = 10;
int D502 = 20;
int D503 = 30;
array[0] = D501;
array[1] = D502;
array[2] = D503;
// 打印数组元素
for(int i=0; i<3; i++) {
printf("array[%d]=%d\n", i, array[i]);
}
return 0;
}
```
输出结果为:
```
array[0]=10
array[1]=20
array[2]=30
```
阅读全文