1. main函数
每个C语言不管有多少行代码,都是从main函数开始执行的。main函数是程序的入口,main函数也被叫做主函数。main前面的int表示main函数执行结束的时候返回一个整数类型的值,所以main函数最后写return 0;(在C语言中默认返回0表示正常,返回非0表示异常),刚好前后呼应。
(1)main函数是程序的入口;
(2)main函数有且只有一个;
(3)即使一个项目中有多个.c文件,也只能有一个main函数,因为程序的入口有且只有一个。
常见错误总结:
(1)main被写成了mian;
(2)main后面的 () 漏掉了;
(3)代码中不能使用中文符号,如分号和括号等;
(4)一条语句结束后应该有分号。
2. printf函数
printf是一个库函数,实现了在屏幕上打印信息,功能是在标准输出设备(一般指屏幕)打印信息,只要把想要打印的信息放在双引号中传递给printf函数就可以打印。
printf("%d\n",100); //按十进制打印整数
printf("%f\n",3.14); //打印小数
printf("%c\n",'X'); //打印字符
3. 库函数
为了不再重复实现常见的代码,C语言标准规定了一组函数,这些函数再由编译器厂商根据标准进行实现,供给程序员使用,这些函数组成了函数库,称作标准库,这些函数称作库函数。一个系列的库函数一般会被声明在同一个头文件中,所以库函数的使用要包含对应的头文件。
#include <stdio.h>
//std: stdandard
//i:input
//o:output
4. 关键字
C语言中有一批保留名字的符号,比如:int、if、return等,这些字符被称为保留字或关键字。
注意:
(1)关键字都有特殊的意义,是保留给C语言使用的;
(2)程序员在创建标识符的时候不能和关键字重复;
(3)关键字也是不能自己创建的;
(4)常用的关键字有32个。
5. 字符和ASCII编码
在键盘上可以敲出一些符号,如@、#等,在C语言中这些符号称为字符,C语言中字符是用单引号括起来的,如’a’、‘X’等。计算机中所有数据以二进制的形式储存,每个人给这些字符编一个二进制序列叫做编码,为了防止混乱,美国国家标准协会出台了一个标准ASCII编码,C语言中的字符就遵循了标准ASCII编码的方式。
注意:
不需要记住ASCII码表中的所有数字,在使用的时候进行查询即可,但要记住一些特殊数据:
(1)字符A-Z的ASCII码值为65-90;
(2)字符a-z的ASCII码值为97-122;
(3)对应的大小写字符(如A和a)相差32;
(4)字符0-9的ASCII码值为48-57;
(5)换行\n的ASCII码值为10;
(6)ASCII码值从0-31为不可打印字符,不可打印在屏幕上观察。
误区:
数据在内存里是二进制位,十进制只是printf根据格式说明符对这些位做的一种文本表示。“存储方式”和“显示方式”是两件事。
6. 字符串和\0
一串字符被称为字符串,字符用单引号,字符串用双引号。如:“gdfgheiu"就是一个字符串。用%s来打印字符串。
注意:
字符串的末尾隐藏着一个\0字符,这个\0字符是字符串结束的标志。
printf("abcd");
printf("abcd\0");
printf("abcd\0efg");
printf("%s","abcd");
printf("%s","abcd\0");
printf("%s","abcd\0efg");
//这6行代码的效果是一样的
7. 转义字符
转义字符顾名思义:转变原来的意思的字符。
? :在书写连续多个问号时,防止他们被解析成三字母词,已经无法在新的编译器上验证了
' :表示字符常量’
\ :用于表示一个反斜杠,防止它被解释为转义序列符
\a :是终端出现警报声或闪烁,或者两者同时发生
\b :退格键,光标回退一个字符,但不删除字符
\n :换行符,换行
\r :回车符,光标移动到这一行的开头
\t :制表符,光标移动到下一个水平制表位,通常为4/8的倍数
\ddd :d d d表示三个八进制数字,\后面最多三个d,例如:\130表示字符X
\xdd :d d表示两个十六进制的数字,例如:\x30表示字符0
printf("%c",'Q');
printf("%c",'\x51');
printf("%c",'\121');
printf("%c",81);
//这些都表示字符Q
8. 语句和语句分类
C语言的代码是由一条条的语句构成的,C语言中的语句可以分为以下五类:
(1)空语句:空语句是最简单的,一个分号就是一个空语句。空语句出现的地方一般是:需要一条语句,但这条语句不需要做任何事,此时便可以写一个空语句。
#include <stdio.h>
int main()
{
; //这便是一个空语句
return 0;
}
(2)表达式语句:表达式语句就是在表达式的后面加上分号。
#include <stdio.h>
int main()
{
int a = 20;
int b =0;
b = a + 5; //这便是表达式语句
return 0;
}
(3)函数调用语句:调用函数的时候,后面加上分号。
#include <stdio.h>
int main()
{
printf("hello"); //这便是一个函数调用语句
return 0;
}
(4)复合语句:复合语句其实就是代码块,成对的大括号里的代码就构成一个代码块。
(5)控制语句:控制语句用于控制程序的执行流程,以实现程序的各种结构(C语言支持三种结构:顺序结构、循环结构、选择结构),它们由特定的语句定义符组成。C语言有九种控制语句,可分成以下三类:
a.条件判断语句(也叫分支语句):if语句、switch语句;
b.循环执行语句:do while语句、while语句、for语句;
c.转向语句:break语句、goto语句、continue语句、return语句。
9. 注释
注释是对代码的说明,编译器会忽略注释,也就是说,注释对实际代码没有影响。注释是给程序员自己或者其他程序员看的。好的注释可以帮我们更好的理解代码,但是也不要过度注释,不要写没必要的注释。当然,不写注释可能会让后期阅读代码的人抓狂。写注释在程度上反应了程序作者的素质,建议大家写必要的注释。(在未来找工作的时候,写代码时留下必要的注释也会给面试官留下更好的印象。)
C 语言的注释有两种表示方法:
(1) /**/ 形式
注释放在 /和/ 之间,一次可以注释多行,但是不支持嵌套注释,这是C语言早期的注释方式。
/*
第一行注释
第二行注释
第三行注释
......
*/
这种注释可以插在行内。
int fopen(char* s /* file name */, int mode);
上面示例中,/* file name */ 用来对函数参数进行说明,跟在它后面的代码依然会有效执行。这种注释一定不能忘记写结束符号 */,否则很容易导致错误。
(2) // 形式
将注释放在双斜杠 // 后面,从双斜杠到行尾都属于注释。这种注释只能是单行,可以放在行首,也可以放在一行语句的结尾。这是 C99 标准新增的语法。
printf("hello");
//打印hello
不管是哪一种注释,都不能放在双引号里面。双引号里面的注释符号会被解释为普通符号,成为字符串的一部分,从而失去注释作用。
printf("// hello /* world */ ");
上面示例中,双引号里面的注释符号,都会被视作普通字符,没有注释作用。
注意
编译时,注释会被替换成一个空格,所以 min/这里是注释/Value,会变成 min Value,而不是 minValue。