1. 配列名が先頭アドレス
abc[10]があったとすると
abcは配列abcの先頭アドレスを示すんだよね。
でね、*abc+iとすることでabc[i]を指示してるんだね。アドレス計算っていうんだってね。
&abc[0] と abcは同じ意味だね。(どっちもabc[10]の先頭アドレス)
2. 配列を関数間で受け渡すとき
関数間で受け渡すときは、配列の先頭アドレスを受け渡すんだよね。
main関数内で
kannsuu(abc);
void kansuu(int *p){
int i;
for(i=0;i<3;i++){
printf("%d",*(p+i));
}
だけどの配列の大きさ(サイズ)も一緒に引数として渡さないと困ることがあるかもね
サイズの計算はsizeofでできるよ。
sizeof(abc)で配列abc全体の大きさ
sizeof(abc[0])で配列のレコードの大きさ
で、割り算して配列の要素数を出してるんだね。
main内
int size= sizeof(abc)/sizeof(abc[0]);
kannsuu(abc,size);
main外
void kansuu(int *p,int size){
int i;
for(i=0;i<3;i++){
printf("%d",*(p+i));
}
3. 引数が変更されないようにするためには
仮引数にconstを付ける、これで変更はできませんよ~と言う話。
void kansuu(const int *p,int size){
int i;
for(i=0;i<3;i++){
printf("%d",*(p+i));
}