Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
程序员的输出:
#include<stdio.h> int main (){ int A[3] = {1,2,3}; printf("%u %u %u ",&A,A,*A); return 0; }
是:3216303812 3216303812 1
这里 &A 和 A 相同,这意味着 a 的地址与 a 的值相同,即 A 指向自身。和 *A 表示存储在 3216303812 的值,即我们所知道的 A 本身 &A = A.. 那么 1 来自哪里?*A = 1 怎么来的?请帮忙
A是指向数组第一个元素的指针,即它等价于&A[0].
A
&A[0]
&A是指向整个数组的指针。
&A
当然,这些地址具有相同的值,因为数组的第一个元素的地址与数组的地址相同。但是它们有不同的类型:A产生一个指向 int 的指针,而是&A一个指向 int 数组的指针。
A表示&A[0],所以*A等价于数组中第一个元素的值,因此输出为1。
*A
1