-2

プログラマーの出力:

#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 なの? 助けてください

4

2 に答える 2

5

A配列の最初の要素へのポインタです。つまり、 と同等&A[0]です。

&A配列全体へのポインタです。

もちろん、配列の最初の要素のアドレスは配列のアドレスと同じであるため、これらのアドレスの値は同じです。ただし、は異なります。Aは int へのポインターを生成しますが、&Aは int の配列へのポインターです。

于 2013-07-16T18:30:16.820 に答える