C言語のポインタを使ってみる
とは言ってもC++なのだが、
ポインタはメモリのある位置を指し示す事ができる。
適当に文字列や配列を設定してその先頭要素を指定したら、ポインタは配列の中身を動き回れる。
#include <cstdio> #include <cstdlib> int main() { const char* arr[] = {"tokyo", "osaka", "nagoya"}; puts("---[ test 1]---"); for (const char* s : arr) { puts(s); } puts("---[ test 2]---"); // 文字列配列の先頭要素をポインタとして取得する const char** p = &arr[0]; for ( size_t i = 0; i < sizeof(arr)/sizeof(const char*); i++) { puts(p[0]); p++; } // 'p'はconst付きだが新しい配列を設定してもまた使える const char* arr2[] = {"yakushima", "tanegashima", "tsushima"}; // なんか先頭要素を指定しなくても勝手にコピーしてくれるっぽい p = arr2; puts("---[ test 3]---"); for ( size_t i = 0; i < sizeof(arr2)/sizeof(const char*); i++) { puts(p[0]); p++; } }