ポインタの配列
今日もポインタのポインタだよ。
#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