「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战」。
1.常量:
1.字面常量
2.const修饰的常变量
3.#define定义的标识符常量
#include <stdio.h>
#define MAX 10
int main(){
int arr[MAX] = 0;
print("%d\n", MAX);
return 0;
}
4.枚举常量
#include<stdio.h>
enum Color //枚举关键--enum
{
RED,
YELLOW,
BLUE
};
int main(void)
{
enum Color color = BLUE;
return 0 ;
}
2.字符串
int main(void)
{
char arr1[] = "abc";//数组
//"abc"--'a' 'b' 'c' '\0' \字符串结束的标志
char arr2[] = {'a','b','c', '\0'}
printf("%s\n",arr1)
printf("%s\n",arr2)
return 0 ;
}
注:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算做字符串的内容。
int main(void)
{
char arr1[] = "abc";
char arr2[] = { 'a','b','c','\0'};\表示结束
printf("%d\n", strlen(arr1));
printf("%d\n", strlen(arr2));
return 0;
}
注:
转义字符:
\ 反斜杠字符 让斜杠就是斜杠
' 单引号 让单引号就是单引号
\“ 双引号 让双引号就是双引号
int main(void)
{
printf("%d",strlen("c:\test\32\test.c")); //\t算一个字符,\32也算一个字符
return 0;
}
\ddd ddd表示1~3位八进制数代表的字符(0-7)
\32--32是2个八进制数字 32作为8进制代表的那个十进制数字,作为ASCII码值,对应的字符
32--> 10进制 26->作为ASCII码值代表的字符
32代表一个字符
/*八进制转化为十进制
156.48 = 1×8^2 + 5×8^1 + 6×8^0 + 4×8^-1 = 110.5
整数:156 = 1×8^2 + 5×8^1 + 6×8^0
小数:0.4 = 4×8^-1*/
\xhh dd表示2个十六进制数字
16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
假设有一个十六进数 2AF5, 那么如何换算成10进制?
用竖式计算:
2AF5换算成10进制:
第0位:5 * 16^0 = 5
第1位:F * 16^1 = 15 * 16 = 240
第2位:A * 16^2 = 10 * 16 = 2560
第3位:2 * 16^3 = 8192
直接计算就是:5 * 16^0 + F * 16^1 + A * 16^2 +2 * 16^3
注:键盘上能敲出的所有的东西都是字符
3.注释
1.有些代码比较难懂,可以加一下注释文字
C++注释风格 // xxxxxxx
C语言注释风格 /xxxxxx/ (缺陷:不能嵌套注释,只要捕获到*/就结束 )