\r\n\r\n
プログラミングの学習は積み重ねであり、選んだ言語の構文を学ぶだけでなく、すべてのプログラミング言語で使われる一般原則を学ばなければなりません。
C言語プログラミングを理解し、学ぶことは大変なことですが、最初に知っておくべき基本的な考え方がいくつかあります。簡単なプロジェクトは、C言語の基礎を学ぶのに最適な方法です。
さて、何から始めましょうか、ご挨拶です。
ほぼすべてのコーディング講座の最初のパートは、helloworldプログラムです。C言語が他の言語と異なる点をいくつか説明する。まず、お好みのテキストエディタまたはIDEを開き、以下のコードを入力してください。
#include <stdio.h>/* this is a Hello World script in C */int main(void){ printf("Hello, World! "); return 0;}このコードは、プログラムを終了する前にコンソールに出力されます。このファイルを覚えやすい場所に hello.c という名前で保存してください。
通常、Cスクリプトを実行するために、コンピュータに追加のソフトウェアをインストールする必要はありません。ターミナルウィンドウ(Windowsの場合はコマンドプロンプト)を開き、スクリプトが保存されているディレクトリに移動します。
ファイルのコンパイルと実行の方法は、システムによって異なります。
いずれの方法でも、スクリプトを実行すると、以下のように表示されるはずです。
Windowsでうまくいかない場合は、コマンドプロンプトを管理者モードで実行するようにしてください。macOSの場合、App storeからXcodeをインストールし、StackOverflowに掲載されている以下の手順を実行する必要がある場合があります。
では、このプログラムを一行ずつ見ていき、どのように動作するかを確認し、改善していきましょう
先ほど作成したスクリプトは、インクルードライブラリで始まります。
#include <stdio.h>スクリプトの最初の行はプリプロセッサーと呼ばれます。これは、スクリプトの残りの部分がコンパイルされる前に実行されます。この場合、stdio.h ライブラリを使用するようにスクリプトに指示します。さまざまな作業に対応できるよう、数多くのプリプロセッサが提供されています。
hは、プログラムのユーザーから入力を受け、その情報をユーザーに出力する役割を担っています。
/* this is a Hello World script in C */次の行はコメントです。スラッシュとアスタリスクは、コンパイラに、スラッシュとアスタリスクの間のすべてを無視するように指示します。無意味に思えるかもしれませんが、自分自身や他の人のために、コードについて明確なコメントを残せるようになることは、培わなければならない習慣なのです。
mainはintで示される整数を返す関数です。mainの後の括弧は引数ですが、この場合、値を受け取らないので、voidキーワードが使われているわけです。
2つの括弧の間に実行されるコードを記述します。
{ printf("Hello, World! "); return 0;}この関数の内部では、printf()関数が呼び出されています。main()と同様、printfは関数です。違いは、printfはstdioライブラリの関数で、最初にインクルードすることです。
Printfは、大括弧内の反転したカンマの間にあるものをコンソールに表示します。\⑭はnewlineというエスケープシーケンスで、コンパイラにコンソールの次の行にジャンプしてから続行するように指示します。
これらの行はセミコロンで終わっていることに注意してください。セミコロンは、コンパイラが1つのタスクを次のタスクから分割するために使用します。このセミコロンに気をつけましょう。セミコロンの欠落は、物事がうまくいかない最初の理由です。
main()関数は常に整数を返し、return = 0で、処理が成功したことをコンピュータに知らせなければなりません。
このスクリプトの各ステップを理解することは、C言語の構文や言語の仕組みを学ぶ上で、とても良いきっかけになります。
Hello World をメイン関数で表示する代わりに、C 言語で独自のカスタム関数を作成することができます。
void print_for_me(){ printf("Hello, World! ");}少し分解してみましょう。
void は、次の関数が何も返さないことを示すキーワードです。
print \u for \u me()は関数名で、空カッコは引数なしで動作することを示します。引数は、関数が動作するために渡されるあらゆる情報です。注)上記のmain()関数がvoidを使用しているのとは異なります。この関数は引数を取ることができませんが、この関数は引数を取ることができます(ただし、この場合、引数を取る必要はありません)。
このブロックは、元のmain関数のprintステートメントに過ぎないのです。
これで、main関数からこの関数を呼び出すことができるようになりました。
int main(void){ print_for_me(); print_for_me(); return 0;}独自の機能を使うメリットはこちらで紹介しています。printf ("Hello, world!") と入力するのではなく、"Hello, world!\n")で、毎回2回ずつ関数を呼び出すことができます。
今はあまり重要でないように思えるかもしれませんが、もしprintu forăku me関数が多くのコード行を含んでいるなら、それを簡単に呼び出すことができれば、非常に時間の節約になります。
これは、教育を通じて出会うプログラミングの基本的な考え方です。同じコードの塊を何度も書くのではなく、一度だけ自分の関数を書いてください。
プロトタイプは、初心者向けC言語が他の言語と区別される主な方法の1つです。つまり、プロトタイプとは、後で定義される関数のプレビューのようなものなのです。print \u for \u me()関数をmain関数の後に記述すると、コンパイル時に以下のような警告が表示されることがあります。
警告メッセージは、printu for\u me関数が宣言される前にコンパイラが実行されたので、プログラムを実行したときに正しく動作するかどうか判断できないことを知らせています。
このコードはまだ動作しますが、プロトタイプを使用することで警告を完全に回避することができます。
#include <stdio.h>void print_for_me();int main(void){ print_for_me(); print_for_me(); return 0;}void print_for_me(){ printf("Hello, World! ");}プログラム全体を見ると、プログラムの最初にprintu forutable me()のプロトタイプがありますが、内容は含まれていません。プロトタイプ関数は、コンパイラにその関数がどのようなものか、引数を取るかどうかを示します。
つまり、main関数の中で呼び出すと、コンパイラはそれが正しく呼び出されたかどうかを把握し、必要に応じて警告やエラーを投げることができるのです。今さらと思われるかもしれませんが、今理解しておくことが将来に役立つのです。
このプログラムは、試作品なしでも動作しますが、使ってみると素晴らしいです。今はまだ出力が同じに見えるので、もっと自分好みに変えてみよう!
最後のステップでは、ユーザーに名前を尋ねて、その入力を記録します。そして、先に作成した関数の中で使用される。C言語では、他のプログラミング言語のように単語を文字列と呼ぶことはない。
配列は記号[]とキーワードcharを持つ。まず、スクリプトの先頭でプロトタイプ関数を更新する。
#include <stdio.h>void print_for_me(char name[]);これでコンパイラは、このスクリプトに続く関数がnameという文字の配列を受け取ることを知ることができる。今のところ、このキャラクターは存在しない。メイン関数を更新してこれを作成し、ユーザーの入力を保存するために使用します。
int main(void){ char name[20]; printf("Enter name: "); scanf("%s", name); print_for_me(name); print_for_me("Everyone!"); return 0;}mainの最初の行では、nameという20個の可能なスペースを含む文字の配列を作成しています。次に、printfを使ってユーザーが自分の名前を入力するように促しています。次の行は、ユーザーが入力した次の単語を受け取るscanfという新しい関数を使用しています。
"%s" は、データを文字列として保存し、それに名前を付けるように関数に指示します。
これで、プリントを呼んでくれるときは、カッコの中に名前を入れることができるようになりました。次の行では、反転したカンマの間であれば、他の文字も渡すことができることがわかります。どちらの場合も、括弧の中身は printu for\u me 関数に渡されます。
次に、あなたが提供した新しい情報を使用するように修正してください:。
void print_for_me(char name[]){ printf("Hello, "); puts(name);}ここでは、スクリプトの冒頭のプロトタイプと同じように、括弧が更新されていることがわかります。内部的にはまだprintfを使ってhelloを表示しています。ここで新しい関数としてputsがあります。
括弧の中に入れたものはコンソールに出力され、自動的に改行(先ほど使用した \n の改行)が追加されます。
前と同じようにコードを保存してコンパイルしてください。前のプログラムを上書きしたくない場合は、別の名前を付けてもよいことに注意してください。私のはhello2:という名前をつけています。
ご覧のように、あらかじめ設定された「みなさん!」という挨拶を送る前に、プログラムは入力を受け取り、それを関数の中で使って、同じ関数に再び2つの別々の出力を行っています。
プログラムはシンプルですが、その中のコンセプトはそうでないものもあります。より高度なC言語コードは、クラッシュを防ぐために非常にうまく記述する必要があります。そのため、新しいプログラマーに良い習慣を植え付けることができるため、最初に学ぶ言語として優れていると考える人が多いのです。
また、C++はCをベースにしながらも、より低いレベルのシステム制御を維持しているため、C++を学ぶ方が良いという考え方もあります。(C++に似たエキサイティングなプログラミング言語であるRustの問題もある)。
ひとつだけ確かなことは、Pythonのような言語は、より初心者に優しいということです。古い言語としては、C言語がまだどこでも使われていますが、Pythonは未来の言語かもしれませんね