很多人刚入门感觉很疑惑,不知道自己学的C语言程序设计是个啥
其实很简单,就相当于是英语汉语这样的语言,C语言是人和计算机交流时说的话。C语言是众多计算机语言中的一种。
C语言最初是作为Unix系统的开发工具而发明的。
1969,贝尔实验室,肯·汤普森和丹尼斯·里奇开发了Unix操作系统,汤普森发明了B语言。
1972,丹尼斯·里奇和布莱恩·克林汉重新设计一种语言代替了B语言,称为C语言。
C语言是一门编译型计算机语言,C语⾔源代码都是文本文件,文本文件本身无法执行,必须通过编译。器翻译和链接器的链接,生成二进制的可执行文件,可执行文件才能执行。
每个源文件(.c)单独经过编译器处理生成对应的目标文件(.obj为后缀的文件).obj是无法直接运行的。
多个目标⽂文件和库文件经过链接器处理生成对应的可执行程序(.exe文件)。
#include
int main()
{
printf("hello C")
return 0;
}
[1] main函数(主函数)
每个C语言程序都是从main函数开始执行的,main函数是程序的入口。
• main函数是程序的入口。
• main函数有且只有一个。
• C语言规定,在一个源程序中,main函数的位置可以任意。
[2] printf
printf 是⼀个库函数,上面的代码是使用 printf 函数打印字符串。
使用printf函数需包含头文件#include
#include
int main()
{
printf("%d",3);//打印整型
printf("%c",A);//打印字符型
printf("%lf",1.21); //打印双精度浮点型
return 0;
}
注:库函数
为了提高程序员效率,建立了函数库(标准库),使程序员不用重复实现常见的代码,就是不用一直敲一样的东西。
库函数的使用需要包含对应的头文件哦
• 创建标识符时不能与关键字重复!不能!不能!
• 关键字不能自己创建。
常用32个关键字
auto break case char const continue default do double else enum extern
float for goto if int long register return short signed sizeof
struct switch typedef union unsigned void volatile while
字符由单引号括起来,如'a','b','#'等。
美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C语⾔中的字符就遵循了 ASCII 编码的方式。
• 不需要记住所有ASCII码表中数字,需要时查看即可。
• 特殊:
• 'A':65
• 'a':97
• 大小写字母差值32
• 0-9:48-57
• 0-31这三十二个字符是不可打印字符
使用双引号括起来的一串字符被称为字符串,如"abc"。
• 在字符串的末尾隐藏放着一个 \0 字符,这个 \0 字符是字符串的结束标志。对于字符串"abc",我们实际上看到了3个字符:a, b, c,但是实际上在末尾还偷偷藏了一个 \0 。
• 在使用库函数 printf() 打印字符串或者strlen() 计算字符串长度的时候,遇到\0 的时候就自动停止了。
转义字符就是转变原来字符的意思
常见转义字符:
• \ ? :在书写连续多个问号时使用,防止他们被解析成三字母词,在新的编译器上没法验证了。
• \' :用于表示字符常量 '
• \" :用于表示一个字符串内部的双引号
• \\ :用于表示一个反斜杠,防止它被解释为一个转义序列符。
• \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发生。(可以按下图打出来后运行试试你的电脑会叫哦~)
#include
int main()
{
printf("\a");
return 0;
}
• \b :退格键,光标回退一个字符,但不删除字符,只是覆盖了这个字符。
• \f :换页符,光标移到下一页。在现代系统上,这已经反映不出来了,行为改成类似于 \v 。
• \n :换行符。
• \r :回车符,光标移到同一行的开头。
• \t :制表符,光标移到下一个水平制表位,通常是下一个4或8的倍数。
• \v :垂直分隔符,光标移到下一个垂直制表位,通常是下一行的同⼀列。
下面2种转义字符可以理解为:字符的8进制或者16进制表示形式
• \ddd :d d d表示1~3个八进制的数字。 如: \130 表示字符X
• \xdd :d d表示2个十六进制数字。如: \x30 表示字符0
\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的一种,用于字符串的结束标志,其
ASCII码值是0.
• 空语句
一个分号就是一条语句,是空语句。
• 表达式语句
表达式语句就是在表达式后加上分号
• 函数调用语句
函数调用的时候,也会加上分号,就是函数调用语句
• 复合语句
复合语句其实就是代码块,成对括号中的代码就构成一个代码块,也被称为复合语句。
• 控制语句
C语言支持三种结构:顺序结构、选择结构、循环结构
C语言有九种控制语句可分成以下三类:
1. 条件判断语句也叫分⽀语句:if语句、switch语句;
2. 循环执行语句:do while语句、while语句、for 语句;
3. 转向语句:break语句、goto语句、continue语句、return语句。
注释是对代码的说明,编译器会忽略注释,注释对实际代码没有影响。
注释可以帮我们更好的去理解代码,不要过度注释,真的没必要,麻烦。
当然不写注释可能会让阅读代码的人,看不懂而抓狂。所以有必要时注释。
注释的2种形式
1. /**/ 的形式
第⼀种方法是将注释放在 /*...*/ 之间,内部可以分行。(这种注释可以插在行内。)下图第一行在行内注释,第二行在行末注释
int a=1/*变量a的初始化*/,b=2;
printf("%d",a);/*输出a的值*/
/**/ 的这个注释方法不支持嵌套注释, /* 开始注释后,遇到第一个 */ 就认为注释结束了。如下图本想注释后三行,但是第一个/*遇到第一个*/时注释结束导致只注释了中间两行。
printf("2");
/*printf("3");
printf("5");/*打印出5*/
printf("8");*/
2 . // 的形式
第二种写法是将注释放在双斜杠 // 后面,从双斜杠到行尾都属于注释。这种注释只能是单行,可以
放在行首,也可以放在一行语句的结尾。这是C99标准新增的语法。
注意:不管是哪一种注释,都不能放在双引号里面。
双引号里面的注释符号,会成为字符串的一部分,解释为普通符号,失去注释作用。下图中//hello,/*C*/为打印内容,//或/**/失去了注释作用。
printf("//hello,/*C*/");
注意:注释会被替换。
编译时,注释会被替换成一个空格。