Skip to content

Latest commit

 

History

History
250 lines (179 loc) · 9.54 KB

C语言基础.md

File metadata and controls

250 lines (179 loc) · 9.54 KB

C语言基础

C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。

一、初始C语言

// 包含头文件
#include <stdio.h>

// 主函数
int main()
{
    // printf() 是格式输出函数,其功能就是在屏幕上输出指定的信息
    printf("Hello World");
    return 0;
}

// C语言单行注释
/*
    C语言多行注释
    注释内容2...
    注释内容3...
 */

注意:

  • 一个C程序,有且只有一个主函数,即main()函数。

  • 在最新的C标准中,main()函数的类型为int,而不是void。

  • C程序一定是从主函数开始执行的。

二、C语言中的数据类型

1. 标识符

编程时给变量或者函数起的名字就是标识符。C 语言规定,标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串,并且第一个字符必须是字母或下划线。在使用标识符时还有注意以下几点:

(1) 标识符的长度最好不要超过8位,因为在某些版本的C中规定标识符前8位有效,当两个标识符前8位相同时,则被认为是同一个标识符。

(2) 标识符是严格区分大小写的。例如github和gitHub是两个不同的标识符。

(3) 标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。

(4) 标识符不能是C语言的关键字。想了解更多C语言关键字的知识,请查阅WIKI。

C语言标准定义的32个关键字:

关键字 说明 关键字 说明
auto 声明自动变量,缺省时编译器一般默认为auto int 声明整型变量
double 声明双精度变量 long 声明长整型变量
char 声明字符型变量 float 声明浮点型变量
short 声明短整型变量 signed 声明有符号类型变量
unsigned 声明无符号类型变量 struct 声明结构体变量
union 声明联合数据类型 enum 声明枚举类型
static 声明静态变量 switch 用于开关语句
case 开关语句分支 default 开关语句中的“其他”分支
break 跳出当前循环 register 声明寄存器变量
const 声明只读变量 volatile 说明变量在程序执行中可被隐含地改变
typedef 用以给数据类型取别名(当然还有其他作用) extern 声明变量是在其他文件正声明(也可以看做是引用变量)
return 子程序返回语句(可以带参数,也可不带参数) void 声明函数无返回值或无参数,声明空类型指针
continue 结束当前循环,开始下一轮循环 do 循环语句的循环体
while 循环语句的循环条件 if 条件语句
else 条件语句否定分支(与if 连用) for 一种循环语句(可意会不可言传)
goto 无条件跳转语句 sizeof 计算对象所占内存空间大小

2. 变量及赋值

变量就是可以变化的量,每个变量都会有一个名字(标识符)。使用变量之前必须先定义变量。变量占据内存中一定的存储单元

变量定义的一般形式为:数据类型 变量名;

多个类型相同的变量:数据类型 变量名, 变量名, 变量名...;

变量的赋值分为两种方式:(1).先声明再赋值,(2).声明的同时赋值

int num = 100;
int a, b, c;
a = 1;
b = 2;
c = 3;

注意

在定义中不允许连续赋值,如 int a=b=c=100;

3. 数据类型

C语言中,数据类型可分为:基本数据类型、构造数据类型、指针类型、空类型四大类。

  • 基本类型:整型、字符型、实型(浮点型){单精度型、双精度型}

  • 构造类型:枚举类型、数组类型、结构体类型、共用体类型

数据类型 说明 字节 应用 实例
char 字符型 1 存储单个字符 char gender = "M";
int 整型 2 存储整数 int height = 180;
float 单精度浮点型 4 用于存储小数 float price = 11.99;
double 双精度浮点型 8 存储位数更多的小数 double pi = 3.1415926;

整型数据是指不带小数的数字。生活中有很多信息适合使用整型数据来表示,比如:人的年龄、班级的人数、书的总页数等等。因此整型的类型比较多:

数据类型 说明 字节 取值范围
int 整型 2 (-32768~32767) -215~215-1
short int 短整型(int可以省略) 2 (-32768~32767) -215~215-1
long int 长整型(int可以省略) 4 -231~231-1
unsigned int 无符号整型 2 (0~65535) 0~216-1
unsigned short int 无符号短整型(int可省) 2 (0~65535) 0~216-1
unsigned long int 无符号长整型(int可省) 4 0~232-1

注意

int、short int、long int是根据编译环境的不同,所取范围不同。而其中short int和long int至少是表中所写范围,但是int在表中是以16位编译环境写的取值范围。另外 C语言int的取值范围在于他占用的字节数 ,不同的编译器,规定是不一样。ANSI标准定义int是占2个字节,TC是按ANSI标准的,它的int是占2个字节的。但是在VC里,一个int是占4个字节的。

浮点数据是指带小数的数字。

数据类型 说明 字节 取值范围
float 单精度型 4 -3.4*10-38~3.4*1038
double 双精度型 8 -1.7*10-308~1.7*10308
long double 长双精度型 16 -1.2*10-4932~1.2*104932

4. 格式化输出语句

格式化输出语句,也可以说是占位输出,是将各种类型的数据按照格式化后的类型及指定的位置从计算机上显示。这样做的好处,是有利于计算机能够准确的将我们所要类型数据给我们。

其格式为:printf("输出格式符",输出项);

C语言中的常用格式化符:

格式符 说明 例子
%d 带符号十进制整数 int a=10; printf("%d", a); // 输出结果10
%c 单个字符 char str = 'a'; printf("%c", str); // 输出结果 a
%s 字符串 printf("%s", "C语言"); // 输出结果 C语言
%f 6位小数 float x = 3.14; printf("%f", x); // 输出结果 3.140000
int n = 500;
float f = 1.28;
char c = 'x';
printf("整数:%d;小数:%f;单个字符:%c", n, f, c);
// 结果:整数:500;小数:1.280000;单个字符:x

5. 常量

在程序执行过程中,值不发生改变的量称为常量。C语言的常量可以分为直接常量和符号常量

直接常量也称为字面量,是可以直接拿来使用,无需说明的量,比如:

整型常量:13、0、-13;
实型常量:13.33、-24.4;
字符常量:'a'、'M'
字符串常量:"Hello World!"

**#define 标识符 常量值 **

#include <stdio.h>

#define PI 3.14;
int main () {
    printf("圆周率:%f/n", PI);
    return 0;
}

6. 自动类型转换

#include <stdio.h>
int main()
{
    char c = 'a';
    int n = c;      //将c赋值给n
    float f = c;    //将c赋值给f
    double d = c;    //将c赋值给d
    printf("%d\n",n); // 97
    printf("%f\n",f); // 97.000000
    printf("%lf\n",d); // 97.000000
    return 0;
}

自动转换发生在不同数据类型运算时,在编译的时候自动完成。自动转换遵循的规则就好比小盒子可以放进大盒子里面一样,下图表示了类型自动转换的规则。

github

注意:

  • char类型数据转换为int类型数据遵循ASCII码中的对应值,ASCII码请查看WIKI。

  • 字节小的可以向字节大的自动转换,但字节大的不能向字节小的自动转换

7. 强制类型转换

强制类型转换是通过定义类型转换运算来实现的,其作用是把表达式的运算结果强制转换成类型说明符所表示的类型。其一般形式为:

(数据类型) (表达式)

#include <stdio.h>
int main()
{
    double num = 2.5;      //定义浮点型变量num并赋值为2.5
    int num2 = (int)num;
    printf("num的整数部分是%d\n", num2); // num的整数部分是2
    return 0;
}

三、运算符

C语言中的运算符:算术运算符、赋值运算符、关系运算符、逻辑运算符、三目运算符

1. 算术运算符

名称 符号 例子
加法运算符 + 2+10 = 12
减法运算符 - 2-10 = -8
乘法运算符 * 2*10 = 20
除法运算符 / 10/2 = 5
求余运算符(模运算符) % 10%3 = 1
自增运算符 ++ int i = 0; i++;(或++i)
自减运算符 -- int i = 10; i--;(或--i)

除法运算中注意:

如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如8/3 = 2;而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000。

取余运算中注意:

该运算只适合用两个整数进行取余运算,如:10%3 = 1;而10.0%3则是错误的;运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1。

...

备注

笔记作者: Capricorncd

主页:https://github.com/capricorncd