第7章 C言語のポインタ2 ~charポインタとchar配列~
charポインタが、役立つのは次のような時です。 (他にもありますが、初心者の内は、charポインタを多用する必要はありません)
— リスト19–
#include <stdio.h>
#include <string.h>
#include <time.h>
void main()
{
int cnt, start, end;
char array[512];
char array2[512];
/**
* 長い文字列を、char 配列にコピーする
*/
strcpy(array, "aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeee"
"ffffffffffgggggggggghhhhhhhhhhiiiiiiiiiijjjjjjjjjj"
"kkkkkkkkkkllllllllllmmmmmmmmmmnnnnnnnnnnoooooooooo"
"ppppppppppqqqqqqqqqqrrrrrrrrrrsssssssssstttttttttt"
"uuuuuuuuuuvvvvvvvvvvwwwwwwwwwwxxxxxxxxxxyyyyyyyyyy"
"zzzzzzzzzz");
/**
* 文字列のコピーを繰り返す
* ・コピー処理の開始時間と、終了時間を取得する
*/
start = clock( );
for (cnt = 0; cnt < 1000000; cnt++) {
strcpy(array2, array);
}
end = clock( );
/**
* コピー処理の開始時間と、終了時間を表示する
*/
printf("開始時間は、%d\n", start);
printf("終了時間は、%d\n", end);
}
実行してみて、どれくらいの時間が掛かりましたか?
ちなみに、Pentium75MHzのマシンで約8秒、PentiumⅡ266MHzのマシンでは0.3秒でした。 皆さんのマシンの性能がわかりませんので、あまりにも長すぎたり短すぎたら、 ループ回数を調節してやって見てください。
次に、char配列を使っていたのを、charポインタにしてみましょう。
— リスト19`–
#include <stdio.h>
#include <string.h>
#include <time.h>
void main()
{
int cnt, start, end;
char array[512];
char *ptr;
/**
* 長い文字列を、char 配列にコピーする
*/
strcpy(array, "aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeee"
"ffffffffffgggggggggghhhhhhhhhhiiiiiiiiiijjjjjjjjjj"
"kkkkkkkkkkllllllllllmmmmmmmmmmnnnnnnnnnnoooooooooo"
"ppppppppppqqqqqqqqqqrrrrrrrrrrsssssssssstttttttttt"
"uuuuuuuuuuvvvvvvvvvvwwwwwwwwwwxxxxxxxxxxyyyyyyyyyy"
"zzzzzzzzzz");
/**
* 文字列のコピーを繰り返す
* ・コピー処理の開始時間と、終了時間を取得する
*/
start = clock( );
for (cnt = 0; cnt < 1000000; cnt++) {
ptr = &(array[0]);
}
end = clock( );
/**
* コピー処理の開始時間と、終了時間を表示する
*/
printf("開始時間は、%d\n", start);
printf("終了時間は、%d\n", end);
}
実行結果は、どうなりましたか?
< 前のページへ 次のページへ >-
IS 559680 / ISO27001
認証範囲 本社情報セキュリティ基本方針 -
個人情報保護方針
個人情報の取扱いについて
保有個人データ又は
第三者提供記録に関する
事項の周知について
特定個人情報の取扱いについて -
FS 671851 / ISO9001
認証範囲 本社品質方針







