4種類の定数:
1.リテラル定数
数100など、「a」
2.const-変更された定数変数
const int n =10//定数以外の定数変数はinta[n] = {1、2、3}で配列を定義できません
3.によって定義される識別子定数を定義します
#define NUM 100 // NUMは、defineによって定義された定数です
4.列挙定数:
人生のいくつかの価値観は、次のように1つずつリストすることができます:
性別:男性、女性、機密
週:1、2、3、4、5、6、7
//列挙型を作成します
#include <stdio.h>
enum Sex
{
//枚举类型Sex的三个可能取值 -枚举常量
MALE, //0
FEMALE, //1
SECRET //2
};
int main()
{
enum Sex sex = FEMALE;
//MALE = 2; //err
printf("%d\n", MALE); //0
printf("%d\n", FEMALE); //1
printf("%d\n", SECRET); //2
return 0;
}
文字列:二重引用符で囲まれた文字列は、次のような文字列です: "abc"、 "a"、""//空の文字列
注:文字列の終了マークは\ 0のエスケープ文字です。文字列の長さを計算する場合、\ 0は終了マークであり、文字列の内容としてカウントされません。
#include <stdio.h>
//突出'\0'的重要性
int main()
{
char arr1[] = "abcdef";
char arr2[] = {'a', 'b', 'c','d','e','f'};
char arr3[] = {'a', 'b', 'c','d','e','f','\0'};
//%s 是打印字符串
printf("%s\n", arr1); //abcdef
printf("%s\n", arr2); //abcdef烫abcdef
printf("%s\n", arr3); //abcdef
return 0;
}
#include <stdio.h>
#include <string.h>
//说明'\0'不算作字符串内容
int main()
{
char arr1[] = "abcdef";
printf("%d\n", strlen(arr1)); //6
//strlen - string length - 字符串长度 需要头文件<string.h>
char arr2[] = {'b','i','t'} ;
printf("%d\n", strlen(arr2)); //10 缺少\0输出值是随机值
return 0;
}
エスケープ文字
#include <stdio.h>
int main()
{
//问题1:在屏幕上打印一个单引号',怎么做?
//问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?
//问题3:在屏幕上打印 c:\code\test.c\n,怎么做?
printf("%c\n", '\''); //'
printf("%s\n", "\""); //"
printf("c:\\code\\test.c\n"); //c:\code\test.c\n
return 0;
}
特別なエスケープ文字:
\ ddd:dddは1〜3の8進数を表します。例:\ 130 X
注:\ dddは最大3桁のみをサポートし、3桁は任意ではありません。8進数が'/ 400'(10進数の256 = 8進数400)以上になると、ascallコードの範囲を超えます。コンパイラはエラーを報告します。さらに、3桁を超える場合、または8進数以外の数値が検出された場合、変換は終了し、最後の数値が直接取得されます。
面接の質問:\の後の3つの数字が400を超え、3つの数字に7つ以上の数字がある状況に注意してください
#include <stdio.h>
#include <string.h>
int main()
{
printf("%d\n", strlen("abcdef"));
// \62被解析成一个转义字符
printf("%d\n", strlen("c:\test\628\test.c")); //14
return 0;
}
\ xdd:ddは2桁の16進数を表します。例:\ x5F //
ノート
注釈には2つの種類があります。
Cスタイルのコメント/*xxxxxx * /欠陥:コメントをネストできません
C++スタイルのコメント//xxxxxxxxは1行または複数行にコメントできます