Cで一番つまづくのがポインタらしいです。
今日は、自作関数を勉強しました。
ご存知でしたか?
int main(void){}って関数なんですよ!!
printf(“xxx”)も関数なんですよ!!
int main(void){}は、関数定義で、
printf(“xxx”)は、関数を呼び出しているんですっっ。
なんか、感動しました。
というわけで、以下、今日の復習です。
配列の先頭アドレスを自作関数に渡す
結果表示
mainここから
subここから
2 15 8
3 1 12
subここまで
mainここまで
ソース
#include<stdio.h>
/* sub関数定義 */
int sub(int *phai)
{
int i,j;
printf("subここから\n");
/* mainで初期化した配列を表示 */
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
printf("%2d ",*phai); /* phaiの示すアドレスの値を表示 */
phai++; /* phaiを4バイト移動 */
}
printf("\n");
}
printf("subここまで\n");
return;
}
/* main関数定義 */
int main(void)
{
int hai[2][3]={2,15,8,3,1,12}; /* 配列初期化 */
int *phai; /* ポインタ宣言 */
printf("mainここから\n");
/* 配列hai[0][0]のアドレスをsubに渡す */
phai=&hai[0][0];
sub(phai);
printf("mainここまで\n");
return 0;
}