在上一节中,对于C语言有了一个初步的了解,学会了如何使用IDE来进行代码编写,编译和运行。而这一节,我们会对C语言的基本语法进行学习C语言是一门编程语言,可以和英语进行类比,英语句子 = 单词 + 语法,同样C语言的代码语句,也有着自己的一套规则。

1.基本字符集

1.1 标识符

何为标识符

在C语言中,符号常量,变量,数组,函数等都需要一定的名称,我们把这种名称成为标识符

标识符划分

关键字,预定义标识符和用户标识符!

标识符的命名规则

只能够由字母数字下划线,或者美元符号($)组成,且不能以数字开头
C语言区分大小写,通常变量名和函数名都用小写字母表示; 
虽然没有规定名称的长度,但还是别写太长,最好是见名知义,比如int max一看就知道 
是用来存放最大值的!还有,不能和下面的32个C语言的关键字重名哦!以及C语言 
中系统先定义的标识符,如系统类库系统常量名系统函数名, 
如(格式输出函数:printf());重名!


1.2 关键字「保留字」

何为关键字

C语言中具有特殊含义的英文单词,通常用于构成语句,存储数据,定义数据类型等

C语言里的32个关键字参照图,不用记,用到的时候再去了解!


1.3 分隔符

空白符:在程序中加入适当的空白缩进代码,会使得程序更加清晰易读。

普通分隔符

  • 分号「 ; 」:语句结尾
  • 大括号「 { } 」:函数体,复合语句以及数组的初始化等;
  • 圆括号「 () 」:函数定义时用来括住参数,或者用来修改运算顺序, 
    比如:(a + 1) 2 和 a + (1 2)
  • 方括号「 [] 」定义数组类型和应用元素,比如: int a>;
  • 点号「 . 」:结构体仲引用成员
  • 逗号「 , :参数分隔,比如:int a,b,c;

注释符// 单行注释, /**/多行注释


2.数据类型


2.1 基本数据类型

注意:这里没有给出数据类型的取值范围与精度域宽等,以为在不同的计算机 字长与系统环境下占用的内存空间是不一样的,可以通过sizeof获得对应数据类 型在该系统环境下所占的字节,从而算出对应数据类型的取值范围! 

  • 整型:用于准确地表示整数,根据表示范围的不同分为以下三种: 
    短整型(short) < 整型(int) < 长整型(long)

  • 实型(浮点型):用于标识实数(小数)根据范围和精度不同分为以下两种: 
    单精度浮点数(float) < 双精度浮点数(double) 
    注意:float只能够保证7位数字是有效的!!!

  • 字符型 : 用来描述单个字符,char 
    除了上面三种以外,还可以使用long short signed unsigned 来修饰不同的数据类型: 
    (char只能用后面两个),有符号与无符号的区别是:最高位是否为符号位, 
    即最高位是否用于表示数的整负;我们可以添加unsigned来保证此数据为正数, 
    同时对应的数据范围由0到原来的最大值 * 2


2.2 其他数据类型

数组,指针,结构体,共用体,枚举指针类型,文件类型,空类型(void),后面会学,这里不讲。


3.常量与变量


3.1 常量

整型常量

除上述三种外,还可以在常量后面添加后缀:L或者U,比如: 
108L表示长整型的常量,与108虽然数值相等,但分配的内存空间大小是不一样的; 
0xA3U:表示无符号位的十六进制数0xA3

实型常量

Tips:所谓的规范化的指数形式就是:小数点左边有一位非零的数字(只有一位) 
比如:2.4E3 是对的,而0.1E5 则是错的。

字符常量

附上C里的转义字符:

转义字符 作用 转义字符 作用 转义字符 作用 转义字符 作用
\n 回车换行 \t 水平制表 \v 垂直制表 \b 退格
\r 回车不换行 \f 走纸换页 \0 控制符 \\ 右斜线
\' 单引号 \" 双引号 \a 响铃    

字符串常量

  • 用一对双引号括起来的或者多个字符构成的字符串序列,如: 
    “”,”apple”,”+-*/@#$%”
  • 系统会在存储字符串的时候自动加上‘\0’,字符串结束的标志 
    如:”a”这个字符串占两个字节,因为存储的时候其实是:”a\0”

符号常量

  • 又叫宏常量,是一个预处理命令:#define 常量名 常量值
  • 定义后,程序所有出现这个标识的地方都可以用这个常量来代替: 
    如: #define PI 3.1415926 s = r * r * PI,这里的PI就是3.1415926

3.2 变量

什么是变量?

答:程序运行过程中,他的值可以改变的数据,代表着一个存储空间,需要用变量名 
来找到这个数据就像:你去超市,放东西到储物柜的一格,他会给你一张纸条,你根据 
这个纸条才可以拿回自己的东西储物柜的一格就是变量的内存空间,字条就是变量名, 
你拿和放就是修改变量名对应内存中的数据。

变量的使用:

一个简单的 int a = 123;其实暗地里执行了以下操作

  • int a:在内存中开辟了四个字节的内存空间,并且为这个空间起了个名字,叫做a;
  • 后面的=123,这一步完成的是变量的初始化,就是通过a这个变量名,往4个字节的 
    内存中放入123这个数据

Tips

  • 一个好的建议是,当我们定义一个变量时,对其进行初始化,可以有效的 
    避免空指针问题的出现;
  • 你可以通过&a获得存放123这个数据的内存地址的值!

4.运算符与表达式


4.1 算术运算符

经典例子:倒序输出五位数

#include <stdio.h>
int main()
{
    int a,i;
    printf("请输入需要倒序输出的五位数\n");
    scanf("%d",&a);
    printf("输出倒序后的五位数:\n");
    for(i = 0;i<5;i++)
    {
        printf("%d",a%10);
        a /= 10;
    }
    printf("\n");
    return 0;
}

4.2 关系运算符

经典例子

#include <stdio.h>
int main()
{
    int a = 1,b = 2,c = 3;
    int x,y;
    x = a + b == c;     //结果为1为真
    y = 11 >b != a;     //11 >b 结果为真,即为1, 1 != 1,假
    printf("x = %d,y = %d\n",x,y);
    return 0;

4.8 运算符的优先级

口诀括号最大 > ! > 算数运算符 > 关系运算符 > 逻辑与或 > ß赋值运算符

另外,记得口诀就好,不要去记表,用到的时候再查,查多久熟了。


5.数据类型的转换