c - 为什么 &p 和 &a[0] 不同?
问题描述
#include <stdio.h>
int main(void) {
int a[4][2] = { {11, 12}, {21, 22}, {31, 32}, {41, 42} };
int *p = a[0];
printf("%d\n", *p);
printf("%d\n", p);
printf("%d\n", a[0]);
printf("%d\n", &p);
printf("%d\n", &a[0]);
printf("%d\n", a);
return 0;
}
看上面的代码。
在我的理解中,因为equals 和p
应该a[0]
具有相同的值。&p
&a[0]
但实际输出如下所示:
11
1772204208
1772204208
1772204200
1772204208
1772204208
为什么&p
和&a[0]
不同?
代表什么&p
?
解决方案
&p
产生的指针地址p
显然必须不同于a[0]
.
推荐阅读
- javascript - 在编码参数中解码 url (returnUrl)
- javascript - JEST - 为什么要模拟 api 调用?
- wordpress - 在 Digital Ocean 服务器上使用无头 WordPress 设置 nuxt 前端时遇到问题
- android - 如何从 DataSource.Factory 获取数据
- laravel - 在 laravel 中设置特定的中间件
- ruby-on-rails - 如何找到方法的 Rails 模块路径
- git - 为什么 git -C 不能在 Python 的 post 接收钩子中工作?
- c# - 可以表示多个不同类的数据类型,这些类具有一些共同的属性,无需继承
- python - 熊猫*有效*将有效值按组复制到其他行
- node.js - NodeJS 管道子标准输出响应;输出流的第一个 highWaterMark 字节丢失