[ create a new paste ] login | about

Link: http://codepad.org/w9YY6S09    [ raw code | output | fork ]

C, pasted on Jun 4:
// C言語の文字列の話 ------------------------------------------------------------------

//
// C/C++ は高級アセンブラ等と呼ばれ、元々機械上でOSを作る為に作られた言語。
// あくまで視点は、「機械語じゃやってられないので、もっと便利になるように作られた」物。
//
// Javaやもっと新しいC#や、あるいは他の新旧インタプリタ言語では、文字列の扱いを
// もっと簡単になるように、「言語設計者が先に処理をまとめてしまったから」
//
// C言語のような処理はしなくても済んでいるが、C/C++はそのままの状態では
// 常にメモリを意識して書く必要があるので・・・
//

char names[2][32] = { "モンスターA", "モンスターB" };

// ↑こんな感じ。 より高級な言語しか触った事が無い人だと違和感があるかもしれない点、
//         それは上で言う、[32] の所。これは「とりあえず今用意している文字列が、大体こんくらいなら収まるだろう」
//         って事で、俺が書いた数字。実際には、各要素それぞれが入るサイズを用意する。

// 他言語の例だとこんな感じ
// String names[2] = { "モンスターA", "モンスターB" };
//
// 高級言語の場合、「Cのような処理を事前に設計者が書いて、隠してしまっている」のでわからないかもしれないが、
// ここには、
//
// String names[2] = { "モンスターA", "モンスターB" };
// ↑この型の処理が  ^^^^^^^^^^^^^^ ←この領域を自分で計算して確保しているので、表には出てきてないだけ。

int main()
{
	printf("%s \n", names[0]);
	printf("%s \n", names[1]);
	return 0;
}


Output:
1
2
モンスターA 
モンスターB 


Create a new paste based on this one


Comments: