c - 指向自身的整数数组的起始地址?

标签 c arrays pointers

程序员的输出:

#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 产生一个指向 int 的指针,而 &A 是一个指向 int 数组的指针。

关于c - 指向自身的整数数组的起始地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17684258/

相关文章:

c - 在 C 中使用不同的字符串?

数组中元素的计数

c - 如何判断 shell 命令是用 Bash 还是 C 编写的?

javascript - 无论 JSON 对象是否有多个数组,都循环遍历 JSON 项

java - Android JSON解析Json数组是[]在解析时抛出空指针异常,如何以正确的方式编写?

c - C中ListNode中的指针

c - 空指针数组: valgrind gives invalid write size of 8

c - 在 C 中访问指针的指令有多少?

c - 每 n 毫秒写入一个字符串

C 将 float 转换为整数