arrays - 数组类型的变量或表达式的值是数组元素零的地址
问题描述
我正在阅读 K&R 编程语言 2ed。在第 5.3 节(第 99 页)中:
根据定义,数组类型的变量或表达式的值是数组元素零的地址。
它告诉我们,如果我声明一个数组:
int arr[3];
arr 的值是数组第一个元素的地址的默认值。
我试图在 gcc 中设置一个实验:
int arr[3] = {0, 1, 2};
printf("%p",arr);
输出仍然是数组的第一个元素的地址,尽管我已将其更改为 0。
为什么?
解决方案
这是因为变量arr
本身是一个指针,它具有指向第一个元素的地址{0, 1, 2}
相当于这样做:
int a = 0;
int b = 1;
int c = 2;
printf("%p", &a);
%p
也打印指针指向的地址。(我知道,这听起来很混乱)
推荐阅读
- aws-lambda - 让所有 lambda 函数访问 secretmanager
- react-native - 在 Expo 中创建和使用全局对象
- javascript - Ropsten TestNet 上与 Uniswap 的交易失败
- flutter - 图像高度被忽略
- python - 使用 python 请求和 BeautifulSoup 从带有框架或 flexbox 的网站中抓取数据
- python - Pandas 找不到包含括号的子字符串
- tensorflow - 你能在 TensorFlow 中组合两个神经网络吗?
- python - 如何将数据从 python pandas DataFrame 导入到 Airtable
- javascript - 如何在单个页面上实现多个清单下拉菜单,并按选中的变量进行过滤?
- javascript - 如何使用 gl-matrix 构建具有位置的面向相机的矩阵?