Theoretical Minimum: C言語

プログラミングの勉強では、それぞれの言語がもつ特徴的な点をきちんとおさえることが重要です。C言語の場合、たとえば、次のようなプログラムを説明できないといけません。なぜ、そういう書き方をするのか、なぜそうなるのかを考えてみて下さい。3題とも「Theoretical Minimum:C言語プログラミング基礎」から引用しています。

 

// ----------------- 130とは出力されません
#include <stdio.h>
int main(void)
{
 char a = 130;
 printf("%d\n", a); 
 return 0;
}

 

// ----------------- 何も出力されません
#include <stdio.h>
int main(void)
{
 char *c;
 c = "abcd";

 if(c == "abcd") printf("もちろん");
 return 0;
}

 

// ----------------- p = (char*)・・の行の意味は?
#include <stdio.h>
int main(void)
{
 char *p;
 p = (char*)0x0012FF8B;

 *p = 100;
 printf("%d\n", *p);
 return 0;
}

 

上の例でもわかるとおり、C言語では、メモリ構造を意識したプログラミングの勉強が必要です。ここをあいまいにしたのでは、C言語の勉強をした意味あいがうすれます。この点は、たとえば、画像プログラミングをしないAS3、文字列制御をしないruby、でも同様です。どのプログラミング言語にも共通する練習項目については、「Theoretical Minimum:プログラミング一般」の方にまとめました。