ポインタの配列
今日もポインタのポインタだよ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <stdio.h> void swapMessage( const char **ppA, const char **ppB) { const char *p; p = (*ppA); (*ppA) = (*ppB); (*ppB) = p; } int main( int argc, char *argv[]) { const char messageHello[] = "hello." ; const char messageBye[] = "bye." ; const char *p[] = { messageHello, messageBye }; printf ( "p[0] = %s, p[1] = %s\n" , p[0], p[1] ); swapMessage( &(p[0]), &(p[1]) ); printf ( "p[0] = %s, p[1] = %s\n" , p[0], p[1] ); return 0; } |
ポインタも配列にできるよ。
配列の使い方は大丈夫だよね。
そして、今日もポインタのポインタだよ。
今日は、ポインタの中身を交換するよ。
そのためには、変数を書き換えてもらうためのアドレスである、
ポインタのポインタを渡して、変数の中身を交換してるよ。
交換するには、一時的にアドレスを入れる変数を用意するよ。
2つの皿に乗ったケーキを交換する場合、もう1枚お皿を用意するよね。
考え方はこれと同じで、一時的に使用するポインタを使って、
アドレスを書き換えてるよ。
メモリをイメージすることが大事だから、
分からないときは絵を描いてがんばってね。
Leave a Comment