GNU/Linux >> Linux の 問題 >  >> Linux

Cプログラミングチュートリアルパート3-変数の基本

これまで、Cプログラムとは何か、それをコンパイルして実行する方法、およびプリプロセッサとは何かの基本について説明してきました。これらのチュートリアルを終えたら、次のトピックである変数について説明します。

変数は、プログラマーが要件に従って使用するための値を格納するため、Cプログラミングのコア要素の1つです。例を通して彼らの基本を理解しましょう。以下は基本的なCプログラムです:

#include <stdio.h>

int main (void)
{
int a = 10;
char b = 'z';
float c = 1.5;
printf("\n a=%d, b=%c, c=%f \n", a,b,c);
return 0;
}

以前のCプログラミングチュートリアルでは、「stdio.h」、「#include」の意味、関数(特に「main」)などについてすでに説明しました。したがって、変数の部分に直接ジャンプします。

'int a =10'という行は、整数('int')型の値を保持できる' a'という名前の変数があり、保持している現在の値が'10'であることを意味します。同様に、「b」は文字を保持でき、「c」は浮動小数点数を保持でき、現在の値はそれぞれ「z」と「1.5」です。

上記のサンプルプログラムは、これらの値を「Printf」関数を介して出力に出力します。 %d、%c、および%fは、変数'a'、'b'、'c'をそれぞれ整数、文字、および浮動小数点数として扱う必要があることを'printf'関数に通知するために使用されることに注意してください。

もちろん、これらの値を出力に出力するだけでなく、さらに多くのことを実行できます。たとえば、次のプログラムは5番の階乗を計算します。

#include <stdio.h>

int main (void)
{
int num = 5;
int result = 1;
while (num > 0)
{
result = result * num;
num = num -1;
}

printf("\n Factorial of 5 is %d\n", result);

return 0;
}

知らない人のために、数の階乗、たとえば「n」は、次の乗算の結果です:

nx(n-1)x(n-2)x.....1

したがって、数値が5の場合、5の階乗(または5!)は5x4x3x2x1になり、120になります。

プログラムに戻ると、「num」と「result」という名前の2つの整数変数を定義しました。 numには階乗が計算される数(この場合は5)が含まれますが、「result」は最初に「1」のダミー値を保持します。次に、「while」ループが発生します。

名前が示すように、ループはC関数で使用され、一連の命令を繰り返し実行します。 'while'の場合、ループは条件をチェックすることから始まり(この場合、'numはゼロより大きい必要があります')、while条件がfalseになるまでループ内の命令が繰り返し実行されます。

この場合、「num」の値は最初は5です。したがって、実行はループ内に入り、結果の最初の値は「5」(1x5)になります。その後、「num」は「num -1」になります。これは、「num」の新しい値が4になったことを意味します。

4はまだゼロより大きいため、ループは再び実行されます。今回は、「result」は5x4、つまり20になります。「num」は(4-1)、つまり3になります。このようにして、ループは「num」が0になるまで実行され続け、その時点で、結果は「120」で、これは5の階乗です。

したがって、このプログラムによって生成される出力は次のとおりです。

Factorial of 5 is 120

ここで、特定の値(この場合は「5」など)の代わりに、プログラムのユーザーに階乗を計算する数値を指定させたい場合はどうでしょうか。ええと、それは次の方法で行うことができます:

#include <stdio.h>

int main (void)
{
int num = 0, temp=0;
printf("\n Enter a positive integer: ");
scanf("%d", &num);
temp = num;
int result = 1;
while (temp > 0)
{
result = result * temp;
temp = temp -1;
}

printf("\n Factorial of %d is %d\n", num, result);

return 0;
}

そこで、ここでは、「scanf」と呼ばれる新しい関数を使用しました。これは、「printf」とは正反対で、ユーザーからの入力を受け入れます。

現在、すべての変数には、バイト単位で関連付けられた一定量のメモリがあります。 scanf関数では、変数のメモリの開始アドレスを渡す必要があります。このアドレスには、変数の名前の前に「&」を付けることでアクセスできます。

最後の「printf」ステートメントでユーザーから渡された実際の数値(ここでは「num」に格納されている)が必要なため、ここに新しい変数「temp」を導入しました。

このチュートリアルでは、変数の基本に触れました。このチュートリアルでは、変数とは何か、および変数をCプログラミング言語でどのように使用できるかについての基本的な考え方を理解しているはずです。議論する必要のある変数に関連する他のいくつかの側面があります-次のチュートリアルでそれを行います。


Linux
  1. Cプログラミングチュートリアル4-変数とメモリ

  2. LinuxCプログラミングチュートリアルパート12-代入演算子と条件式

  3. Linux Cプログラミングチュートリアルパート11-算術演算子、リレーショナル演算子、および論理演算子

  1. LinuxCプログラミングチュートリアルパート15-2秒の補数と負の数

  2. Linux Cプログラミングチュートリアルパート18:再帰関数

  3. Awk チュートリアル:3 つの実践例で Awk 変数を理解する

  1. Cプログラミングチュートリアルパート5-文字変数

  2. LinuxCプログラミングチュートリアルパート10-可変スコープ

  3. Linux Cプログラミングチュートリアルパート9:文字列