目录
What is the C language?
- 编译型计算机语言,源代码为文本文件,必须通过编译器翻译和链接器链接,生成二进制的可执行文件才能执行。
每个源文件(.c) | 编译器处理 | 对应目标文件(.obj) |
多个目标文件和库文件 | 链接器处理 | 对应可执行程序(.exe) |
- 在vs上写代码,新建项目,在项目中添加源文件(.c)和头文件(.h)。
First program
#include<stdio.h>
int main()
{
printf("hello Gale\n");
return 0;
}
在vs上运行代码的快捷键 (Ctrl+) F5
所有符号必须为英文符号,一条语句结束后有分号
- MAIN函数(主函数)
- main函数是程序的入口,有且仅有一个。
- 即使一个项目中有多个.c文件,但是只能有一个main函数,因为程序的入口仅有一个。
- 与 return 0; 相呼应。
- PRINTF和库函数
- printf是一个库函数,功能是在输出设备上进行打印。
- 上面的代码是使用printf函数打印字符串,只要将其放在双引号中就可以打印。
- 对于库函数的使用需要包含对应的头文件,例如 printf 函数需要包含的就是stdio.h 这个头文件。
- 库函数:C语言标准规定的一系列函数,为了不重复实现常见的代码,提升开发效率。
- 库函数比较多,可参考链接 https://cplusplus.com/reference/clibrary/
Keyword
c语言中有一批保留名字的符号,被称为保留字或关键字。
- 关键字不能自己创造。
- 创建标识符时不能与关键字重复。
- c语言的32个关键字如下:
auto | break | case | char | const | continue | default | do |
double | else | enum | extern | float | for | goto | if |
int | long | register | return | short | signed | sizeof | static |
struct | switch | typedef | union | unsigned | void | volatile | while |
这里先大致介绍后面再进行展开,关键字的全部介绍 https://zh.cppreference.com/w/c/keyword
Character and ASCII encoded
- c语言中字符是用单引号括起来的,例如'a','@'。
- 计算机中,数据以二进制的形式存储,字符遵循ASCII编码的方式。
-
ASCII码一览表,ASCII码对照表 https://c.biancheng.net/c/ascii/
注意
- 字符 A~Z 码值从65~90,字符 a~z 码值从97~122,大小写码值的差值为32。
-
数字字符0~9的ASCII码值从48~57。
-
在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,无法打印在屏幕上观察。
-
单个字符的打印可以用%c来指定格式。
#include <stdio.h>
int main()
{
printf("%c\n",'A');
printf("%c\n",65);\\65为A的ASCII码值
return 0;
}
character string1 and /0
- 使用双引号括起来的一串字符称为字符串,例如“abcdef”。
- 字符串的打印格式可以用%s来指定。
- 字符串末尾隐藏放着一个\0字符,\0是字符串结束的标志。
- strlen可以用来获取字符串的有效长度,结尾标记'\0'不包含在内。将有效字符检测完之后,还会继续向后检测,直到遇到'\0'才终止。使用需引用头文件string.h。
#include <stdio.h>
#include <string.h>
int main()
{
printf("%s\n","hello Gale");
printf("hello Gale\n");\\也可以直接打印
char arr[] = {'a', 'b', 'c'};
printf("%d\n", strlen(arr));
return 0;
}
ESC
转义字符 转变原来的意思
一些常见的转义字符
\' :用于表示字符常量' |
\" :用于表示⼀个字符串内部的双引号 |
\\ :用于表示⼀个反斜杠,防⽌它被解释为⼀个转义序列符 |
\b :退格键,光标回退⼀个字符,但不删除字符 |
\n :换行符 |
\r :回车符,光标移到同⼀行的开头 |
\t :制表符,光标移到下⼀个水平制表位,通常是下⼀个4/8的倍数 |
\ddd :d d d表示1~3个八进制的数字。 如: \130 表示字符X |
\xdd :d d表示2个十六进制数字。 如: \x30 表示字符0 |
\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,字符串的结束标志,ASCII码值是0 |
#include<stdio.h>
int main()
{
printf("%c", '\x30');//30是十六进制,转换成十进制是48,以48作为ASCII码值的字符是'0'
printf("%c", '\130');//130是八进制,转换成十进制是88,以88作为ASCII码值的字符是'x'
return 0;
}
annotation
- /* ...*/ 内部可分行,不支持嵌套。
- // 单行注释,注释其后内容。