第11講 Cプロジェクトを体験しよう!
第3話 CプロジェクトとC++プロジェクトに違いはある?
c++では、coutで表示したのに対して、
c言語では、printfで表示するのだといことは、
理解して頂けたかと思いますが、
それ以外に異なる点があるでしょうか。
今まで学習した範囲では、
基本的にはない!
が答えです。
つまり、変数・if文・for文・配列・ポインタ・関数
の概念は同じです。
例えば、次のようなコードを組んでみましょう。
#include <stdio.h>
int f();
int g();
void main(){
printf("社長命令を下す。\n");
printf("部下f()は1から10までの和を計算して報告しなさい。\n");
printf("部下f()は1から10までの積を計算して報告しなさい。\n");
printf("部下f()による結果報告:%d\n",f());
printf("部下g()による結果報告:%d\n",g());
}
int f(){
int i,w;
w=0;
for(i=1;i<=10;i++)w=w+i;
return(w);
}
int g(){
int i,w;
w=1;
for(i=1;i<=10;i++)w=w*i;
return(w);
}
すると実行結果は、
社長命令を下す。
部下f()は1から10までの和を計算して報告しなさい。
部下g()は1から10までの積を計算して報告しなさい。
部下f()による結果報告:55
部下g()による結果報告:3628800
となります。
変数・関数・for文が同じであることが分かります。
さらに、配列やポインタはどうでしょうか。
コードを次ぎのようにに変更すると、
#include <stdio.h>
int f();
int g();
void h(int *x);
void main(){
int x[10],i;
printf("社長命令を下す。\n");
printf("部下f()は1から10までの和を計算して報告しなさい。\n");
printf("部下g()は1から10までの積を計算して報告しなさい。\n");
printf("部下f()による結果報告:%d\n",f());
printf("部下g()による結果報告:%d\n",g());
printf("部下h()は,配列に使い1から10まで代入しなさい\n");
h(x);
for(i=0;i<10;i++)printf("%d ",x[i]);
printf("\n");
}
int f(){
int i,w;
w=0;
for(i=1;i<=10;i++)w=w+i;
return(w);
}
int g(){
int i,w;
w=1;
for(i=1;i<=10;i++)w=w*i;
return(w);
}
void h(int *x){
int i;
for(i=0;i<10;i++)x[i]=i+1;
}
実行結果
社長命令を下す。
部下f()は1から10までの和を計算して報告しなさい。
部下g()は1から10までの積を計算して報告しなさい。
部下f()による結果報告:55
部下g()による結果報告:3628800
部下h()は,配列に使い1から10まで代入しなさい
1 2 3 4 5 6 7 8 9 10
です。
C言語とC++には今まで学習した範囲であれば、
基本的にはない!
ということでしたが、基本的という言葉がついている以上
違いが若干あるということです。
それは、C++であれば
void main(){
printf("社長命令を下す。\n");
printf("部下f()は1から10までの和を計算して報告しなさい。\n");
printf("部下g()は1から10までの積を計算して報告しなさい。\n");
printf("部下f()による結果報告:%d\n",f());
printf("部下g()による結果報告:%d\n",g());
printf("部下h()は,配列に使い1から10まで代入しなさい\n");
h(x);
int x[10],i;
for(i=0;i<10;i++)printf("%d ",x[i]);
printf("\n");
}
と途中で変数や配列の宣言をしてもエラーはしませんが、
C言語では必ず関数の冒頭で変数・配列・ポインタは
宣言しないとエラーになります。
また、C++の場合
int x[10];
for(int i=0;i<10;i++)printf("%d ",x[i]);
for文の中でしか有効でない変数を宣言することが出来ましたが、
C言語ではエラーになります。
C++の場合、
変数のスコープ(有効範囲)を
関数よりもっと小さな単位にすることが出来ましたが、
Cの場合は、スコープは関数という単位でしか限定できません。
つまり、関数より小さな単位でスコープを限定できる
変数を超ローカル変数と呼ぶとすれば
C++では超ローカル変数を使うことが出来ましたが、
Cではローカル変数しか使えないということです。
if文も問題ないことを確認するコードを考えましょう。
mainで100以下の整数を作り、
そのデータを関数f1に送り、
偶数なら0を返し、奇数なら1を返してもらい、
その結果を利用して、
mainで偶数か奇数を表示させて下さい。
第2話へ 第4話へ
eclipse c++ 入門講義第1部へ
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
VC++ C言語 C++ 入門 初心者 基礎から応用まで
本サイトトップへ