C语言的基础知识

本文详细介绍了C语言的发展历程、主要特点、编译过程、运行机制以及开发注意事项。C语言以其代码级别跨平台、直接硬件操作、结构化设计等特性著称,适用于系统软件开发。在编译过程中,生成的目标文件与库文件链接后成为可执行文件。C程序的执行始于main()函数,变量的声明和使用是程序的基础,包括各种数据类型如整数、浮点数、字符和布尔类型。文章还探讨了变量的存储和输出,以及强制类型转换的规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

C语言的发展进程

特点

编译过程中的知识点

C程序运行机制

C语言开发注意事项

变量

变量注意事项

变量的数据类型

整数类型

 浮点数类型​编辑

字符类型

布尔类型

强制数据类型转换​

C语言的发展进程

特点

  • 代码级别的跨平台
  • 使允许直接访问物理地址,对硬件进行操作(C语言可以用来写系统软件)
  • C语言是一个有结构化程序设计、具有变量化领域以及递归功能的过程式语言
  • C语言传递参数可以是值传递,也可以是传递指针
  • C语言中,没有对象,不同的变量类型可以用结构体组合在一起
  • 预编译处理,生成目标代码质量高,程序执行效率高

编译过程中的知识点

  • 生成解决方案只是生成了一个.exe文件,但是并不会将文件执行
  • C语言严格区分大小写

C程序运行机制

  • 源文件(.c文件)编译之后变成目标文件(.obj文件),同时还有C语言提供的库文件。目标文件与库文件相链接,链接之后变为可执行文件(.exe文件),运行之后,出现结果。

C语言开发注意事项

#include
void main(){
    语句1;
    语句2;
}
  • C程序源文件以“C”为扩展名
  • C程序的执行入口是main()函数

变量

变量注意事项

  • 变量表示内存中的一个存储区域
  • 该区域有自己的名称和类型
  • 变量必须先声明,后使用
  • 该区域的数据可以在同一类型范围内不断变化
  • 变量在同一个作用域内不能重名

变量的数据类型

整数类型

  • 在不同系统上,部分数据类型字节长度不一样,int表示2或者4
  • bit(位):计算机中的最小存储单位;byte(字节):计算机中基本存储单元;

                1byte = 8 bit

 浮点数类型

  • 浮点型变量默认为double类型,声明float型变量时,须在后加'f' 或'F'
  • 浮点型变量:十进制数形式、科学计数法
  • 通常情况下,应该使用double类型,它比float类型更精确
  • 在输出时,默认保留小数点6位

字符类型

  • 字符常量是用单括号(' ')括起来的单个字符
  • C中还允许使用转义字符'\'来将之后的字符转变为特殊字符型常量
  • 在C语言中,char的本质是一个整数,在输出时,是ASCII码对应的字符
  • 可以直接给char赋一个整数,然后输出时,或按照对应的ASCII码字符输出(以%c形式输出
  • char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码

        大写A的ASCII码是65

        小写a的ASCII码是97

  • 存储:字符'a'-->码值(97)-->二进制(1100001)-->存储()
  • 读取:二进制(1100001)-->码值(97)-->字符'a'-->显示

布尔类型

  • C99提供了一个头文件<stdbool.h>定义了bool代表_Bool
  • true代表1,false代表0.
  • 只要导入stdbool.h,就能方便的控制布尔类型了。bool flag = false;
    #include<stdio.h>
    
    //宏定义
    #define BOOL int
    #define TRUE 1
    #define FALSE 0
    
    void main() {
    
    	int isPass = 1;
    	if (isPass) {//0表示假,非0表示真
    		printf("未通过考试\n");
    	}
    
    	/*isPass -= 1;
    	if (isPass) {
    		printf("通过考试");
    	}*/
    
    	//定义一个布尔变量
    	BOOL isOk = TRUE;//int isOk = 1;
    	if (isOk) {
    		printf("ok");
    	}
    
    	getchar();
    }

    导入<stdbool.h>

    #include<stdio.h>
    #include<stdbool.h>
    
    void main() {
    
    	//定义一个布尔变量
    	bool isOk = true;//int isOk = 1;
    	if (isOk) {
    		printf("ok");
    	}
    
    	getchar();
    }

    强制数据类型转换

  • 当进行数据的从精度高-->精度低,就需要使用强制转换
  • 强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
#include<stdio.h>

void main() {

	double d1 = 1.9344655;
	int n1 = (int)d1;//不是四舍五入,直接截断小数点后的部分
	int num2 = (int)1.5 * 10 + 6 * 1.5;//19
	int num3 = 1.5 * 10 + 6 * 1.5;//24
	int num4 = (int)(1.5 * 10 + 6 * 1.5);//24

	printf("n1=%d\td1=%.4f\n", n1,d1);//1  1.9345
	printf("num2=%d\n", num2);
	printf("num3=%d\n", num3);
	printf("num4=%d\n", num4);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值