小猪的C语言快速入门系列(二)

小猪的C语言快速入门系列(二)

标签: C语言


本节引言

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


本节学习路线图

小猪的C语言快速入门系列(二)_第1张图片


1.基本字符集


1.1 标识符

何为标识符

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

标识符划分

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

标识符的命名规则

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


1.2 关键字「保留字」

何为关键字

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

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

小猪的C语言快速入门系列(二)_第2张图片


1.3 分隔符

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

普通分隔符

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

整型常量

小猪的C语言快速入门系列(二)_第3张图片

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

实型常量

小猪的C语言快速入门系列(二)_第4张图片

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

字符常量

小猪的C语言快速入门系列(二)_第5张图片

附上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 算术运算符

小猪的C语言快速入门系列(二)_第6张图片

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

#include 
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 关系运算符

小猪的C语言快速入门系列(二)_第7张图片

经典例子

#include 
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.3 逻辑运算符

小猪的C语言快速入门系列(二)_第8张图片

经典例子:判断某一年是否为闰年

#include 
int main()
{
    int year;
    printf("请输入需要判断的年份:\n");
    scanf("%d",&year);
    if(!(year%4)&&year%100 || !(year % 400))
    {printf("%d年是闰年\n",year);}
    else printf("%d年不是闰年!\n,year");
    return 0;
}

4.4 赋值运算符

小猪的C语言快速入门系列(二)_第9张图片

经典例子:赋值运算符的嵌套,一般题目会问某个变量在某时刻的值

#include 
int main()
{
    int a,b,c;
    //普通赋值:
    a = 2,b= 6,c = 26;
    a *= b = c = 3;     //a = 6,b=3,c=3;
    printf("a = %d,b = %d,c = %d\n",a,b,c);
    a += b +=c;    //a = 12,b=6,c =3
    printf("a = %d,b = %d,c = %d\n",a,b,c);
    a = b == c + 5;  //a = 0,b = 6,c = 3
    printf("a = %d,b = %d,c = %d\n",a,b,c);
    return 0;
}

4.5 条件表达式

经典例子:用条件表达式实现求三个数的最大值

#include 
int main()
{
    int a,b,c;
    int max;
    printf("请输入三个数:\n");
    scanf("%d%d%d",&a,&b,&c);
    a > b ? (max = a):(max = b);
    max < c? (max = c):max;
    printf("输出最大值:%d\n",max);
    return 0;
}

4.6 逗号表达式

小猪的C语言快速入门系列(二)_第10张图片

经典例子:逗号表达式的值

#include 
int main()
{
    //int a = b = c = 5;是不合法的啊!
    int a,b,c;
    a = b = c = 1;
    c = (a = 10,b = 10,2 * a + 5,a + a * b + c);
    //输出结果:10,10,111;
    printf("a = %d,b = %d,c = %d\n",a,b,c);
    return 0;
}

4.7 长度测试运算符

sizeof:通常用来测试某个数据类型所占的内存空间大小

经典例子:测试的是int,float,char类型在本机所占的字节数

#include     
int main()    
{    
    int a = 1;    
    float b = 1.1;    
    char c = 'c';    
    printf("%d,%d,%d\n",sizeof(a),sizeof(b),sizeof(c));    
    return 0;    
}  

4.8 运算符的优先级

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

附上C语言运算符优先级表(详细):
http://blog.csdn.net/coder_pig/article/details/37650817

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


5.数据类型的转换

小猪的C语言快速入门系列(二)_第11张图片


本文链接:小猪的C语言快速入门系列(二)
作者:Coder-Pig
出处:http://blog.csdn.net/coder_pig
本文基于知识共享署名-相同方式共享 4.0 国际许可协议发布,欢迎转载,
演绎或用于商业目的,但是必须保留本文的署名及链接。

你可能感兴趣的:(C语言快速入门,C语言快速入门系列)