c语言数组地址放入到变量中
时间: 2023-07-16 15:13:13 浏览: 137
在 C 语言中,数组名相当于数组的首地址,可以将数组名赋值给指针变量来获得数组的地址。例如:
```c
int arr[5] = {1, 2, 3, 4, 5};
int *p;
p = arr; // 将数组名赋值给指针变量
```
在上面的代码中,`p` 指向数组 `arr` 的首地址,即 `&arr[0]`。
如果要将数组的地址放入普通变量中,可以使用如下代码:
```c
int arr[5] = {1, 2, 3, 4, 5};
int *p;
p = arr; // 将数组名赋值给指针变量
int addr = (int)p; // 将指针变量转换成整型变量
```
在上面的代码中,使用了强制类型转换将指针变量 `p` 转换成 `int` 类型,然后将转换后的值赋给变量 `addr`。这样,变量 `addr` 中就存储了数组 `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
```
阅读全文