C语言学习笔记

156 阅读1分钟

「这是我参与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/        (缺陷:不能嵌套注释,只要捕获到*/就结束 )