コンテンツ
1. C言語のキーワード:C言語によって定義され、特定の意味を持ち、特別な目的に特化したC言語の識別子。予約語とも呼ばれます。
1.ストリング
C言語仕様:有効な文字列の終了マーカーとして「\0」を使用します
配列の添え字は0から始まります。
#include <stdio.h>
#include <string.h>
int main()
{
printf("%d\n", strlen("c:\test\121"))
return 0;
}
strlen:'\0'を除く文字列の有効な長さを取得します
"c:\ test \ 121":この文字列では、\ tは遷移文字であり、水平方向にタブ移動し、次のタブ位置にジャンプします。\ 121は文字を意味します。つまり、121は8進配列と見なされます。 10進数で81に変換すると、ジョブはASCIIコード値の文字、つまり文字「Q」であるため、上記の文字列は実際には「c esty」であり、有効な文字は7文字のみです。
'\n'改行を表すエスケープ文字
'\ 060'エスケープ文字、060 8進数データ、10進数48は、ASCIIコードが48の'0'を意味します
'\ b'エスケープ文字、バックスペースを意味します
次のコードの結果は次のとおりです。()
#include <stdio.h>
#include <string.h>
int main()
{
char arr[] = {'b', 'i', 't'};
printf("%d\n", strlen(arr));
return 0;
}
strlenは文字列の有効長を取得するために使用され、終了マーカー「\0」は含まれません。
strlenによって取得されるルールは非常に単純です。前から後ろにチェックし、「\0」が検出されるまで検出を終了します。
上半身では、arrは文字配列であり、背後に'\ 0'がないため、有効な文字列ではありません。したがって、strlenが解決しているとき、有効な文字を検出した後、'\0に遭遇するまで逆方向にチェックを続けます。 'は終了するだけなので、答えは不確定です。't'の直後の最初の'\0'がどこにあるかによって異なります。
2.キーワード
1. C言語のキーワード:C言語によって定義され、特定の意味を持ち、特別な目的に特化したC言語の識別子。予約語とも呼ばれます。
キーワードには特別な意味があり、変数名として使用することはできません
(defineがキーワードではない場合、コンパイラーによって実装され、C言語のコンテンツではなく、マクロ前処理命令を定義するために使用されます。)
例
用在switch语言中的关键字不包含哪个? A.continue B.break C.default D.case 答案是A switch是用来进行多分支选择的语句,一般结构是: switch(变量表达式) { case xx1: // ... break; case xx2 // ... break; default: // ... } 当变量表达式的内容与某个case后的常量相等后,就执行该case下的语句 break表示该case以后的内容不会执行,如果没有跟break,会继续执行当前case之后的case分支。 当变量表达式的内容没有与那个case匹配,就会执行default下的内容。 switch中常用的关键字:case 、break、 default,当然case中语句比较复杂时,可能会用if进行判断。 continue是用来结束本次循环的,而switch不是循环,因此其中不能使用continue关键字。
演習1.2つの数値のサイズを決定します
#include <stdio.h>
int main()
{
int a, b;
while (scanf("%d%d", &a, &b) != EOF)
{
if (a > b)
printf("%d>%d\n", a, b);
else if (a < b)
printf("%d<%d\n", a, b);
else
printf("%d=%d\n", a, b);
}
return 0;
}
演習2.合計スコアと平均スコアの計算
%3.2fは
%m.nf
m-出力データの全長を決定します。[整数+小数点+1小数点]出力データの全長で出力長が指定されていない場合は、左側がスペースで埋められます。データの側。出力の長さ以上の場合は使用されません。n-小数点出力の桁数を決定し、最後の桁に丸めます。データの小数点以下の桁数が指定された桁数より少ない場合は、最後に0を追加します。
int main()
{
float a=0;
float b=0;
float c=0;
scanf("%f %f %f",&a,&b,&c);
float ret=a+b+c;
float Average=(a+b+c)/3;
printf("%3.2f ",ret);
printf("%3.2f",Average);
return 0;
}
演習3.4桁の数値を逆出力します
たとえば、n = 1234、最初の1234%10 = 4、nを10 = 123で割った値。123%10 = 3、123を10=12で割った値。
ループはn=0まで続き、ループは終了して4 321を出力します。
#include <stdio.h>
void Nixu(int n)
{
while(n)
{
printf("%d",n%10);
n/=10;
}
}
int main()
{
int n=0;
scanf("%d",&n);
Nixu(n);
return 0;
}
C言語では、0は偽を意味し、0以外は真を意味します
//#define 定义常量
#define MAX 1000
#define STR "hello bit"
int main()
{
int m = MAX;
printf("%d\n", m);
printf("%s\n", STR);
return 0;
}
静的に変更されたローカル変数
void test()
{
static int a = 5;
a++;
printf("%d ", a);
}
int main()
{
int i = 0;
while (i<10)
{
test();
i++;
}
return 0;
}
static修饰局部变量,延长生命周期
staticがローカル変数を変更すると、ローカル変数はローカルスコープ外の静的ローカル変数になり、破棄されません
次に関数を入力するとき、次の理由で関数がまだ存在します。静的に変更されたローカル変数が静的領域に格納された静的に変更されたローカル変数である場合、実際に変更されるのは変数の格納場所です。
元々、ローカル変数はスタック領域に配置されていましたが、静的に変更された後、静的領域に配置されていました。その結果、範囲外がまだ存在し、ライフサイクルは終了しません。