1

配列がポインターに減衰することは知っています。その結果、ポインターのように動作するため、基本的に、アンパサンドを使用せずにメモリ アドレスを必要とする引数を持つ関数に渡すことができます。例えば:

char name[10];
scanf("%s", name);

正しい。

ただし、「name」配列の最初の要素だけを入力したい場合、次のように記述できないのはなぜですか

scanf("%c", name[0]);

しかし、「name[0]」の前にアンパサンドを付けて書く必要がありますか? これは、個々の配列要素がポインタに減衰せず、対応する配列全体とは対照的に、個々のメモリ アドレスを保持しないことを意味しますか?

4

2 に答える 2

1
于 2016-06-23T08:17:30.910 に答える