前言 关于注释的两种方式
“//”后开始到下一行开始为注释范围
/**/在*之间的为注释范围
注释内容不会被编译器解读,可以为读者介绍代码的含义
1.代码分析
#include<stdio.h>
int main(){
printf("这个世界终于癫了\n");//打印内容为""内的字符串
return 0;
}
1.1 第一行代码作用
进行相关的预处理操作,#是预处理的标志,<>中输入头文件
stdio是standard input output标准输入输出头文件
.h是头文件的结尾,.c是源文件的结尾
1.2 main()函数
该函数是程序的入口,程序运行从main()函数开始执行
一个项目有且只有一个main函数
main函数的位置可以任意,但是如果在主函数之中调用某些函数,必须在main函数前对其所调用函数进行声明或使用包含其被调用函数的头文件
main函数与return 0;是一一对应关系
1.3
int一般代表整数类型,代码第二行的int意味着函数返回类型为整型,main为函数名称
()里面可以填写函数参数,有特殊作用,一般可以为空
return功能是返回函数执行结果,0为函数返回值,数值可以更换,为0时表示正常返回
1.4 函数体
“{}”中的内容叫函数体,程序的相关操作都要写在里面
例如代码调用头文件中的格式化输出函数printf(),功能是 在标准输出设备进行信息打印
打印信息放入" "内就并通过()传递给printf就可以进行打印
例子如图
“\n”表示换行操作
2.c程序编译过程
一个项目一般由一个或多个.c文件构成
2.1 预处理
预处理主要处理代码中“#”开头的预处理语句
(1)展开所有宏定义(#define),将宏替换定义为它定义的值
#define M 1
#include<stdio.h>
int main(){
int a = M + 3;
printf("%d",a);
return 0;
}
宏定义:根据预处理规则,替换一定的信息,例如声明M为1参与表达式运算
(2)处理所有条件编译指令
(3)处理文件包含语句
2.2 编译
编译对与处理文件进行分析处理,编译的过程是优化过程,包括中间代码优化和针对目标代码生成优化
2.3 汇编
2.4 链接
链接可以分为静态库链接和动态库链接
静态库在Linux中是“*.a”文件在windows系统中是“*.lib”文件
动态库在Linux中是“*.so”文件,在Windows系统中是“*.dll”文件
3.库函数
标准库中的函数
标准库:C语言规定的函数组成的函数库
不同编译器厂商实现规定的函数功能,参数返回值大致相同,内容可能不同
在基础上编译厂家额外扩展提供部分函数
4.字符和ASCII
在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号 括起来的,如:'a','b','@'
现用现查,可以直接在csdn搜索,这个是网页上找的
在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,无法打印在屏幕上观察
虽然不用背诵,但建议记住几组特殊数据:
字符A~Z的ASCII码值从65~90
字符a~z的ASCII码值从97~122
对应的大小写字符(a和A)的ASCII码值的差值是32
数字字符0~9的ASCII码值从48~57
换行\n 的ASCII值是:10
#include<stdio.h>
int main(){
printf("%c%c%c%c %c",76,79,86,69,85);//LOVE U
return 0;
}
5. 字符串和\0
使⽤双引号括起来的⼀串字符就被称为字符串
在开篇的代码,‘这个世界终于癫了’就是一种字符串(汉字字符串中一个汉字占两个字节,所以在限制长度与求字符长度时需要注意一些事项)
‘这个世界终于癫了’另一种打印方法。
#include<stdio.h>
int main(){
printf("%s","这个世界终于癫了");
return 0;
}
%c用来打印字符,%s用于打印字符串(占位符一会儿在写相关知识点~)
在字符串后隐藏着一个字符\0,\0是字符串结束的标志,在某些时候可以手动添加哦
6.关键字
关键字是指在C语言中事先定好赋予了特殊含义的单词,每个关键字都有特殊用途
//C语⾔的32个关键字如下:
//auto break case char const continue default do double else enum extern
//float for goto if int long register return short signed sizeof static
//struct switch typedef union unsigned void volatile while
c99新增了五个:inline,restrict,bool,_Comploex,_Imaginary
致了解即可,在练习中巩固
7.标识符
在编译过程中需要定义一些符号来标记数据和内容
标识符使用规则:
(1)标识符只能由数字,字母,_组成
(2)标识符不能以数字作为第一个字符
(3)标识符不能使用关键字
(4)标识符区分大小写:如“DIAN”,“dian”,“DiAn"是不同的标识符
#include<stdio.h>
int main(){
char dian='A';
int dj = 0;
printf("%d\n%c", dj, dian);
return 0;
}
如图中dj,dian都是标识符
8.占位符
占位符就是先占住一个固定的位置,再往里面添加内容的符号。
%d,里面添加十进制整数
%c,里面添加字符
%s,里面添加字符串
%f,里面添加小数(主要对应float浮点数)
%lf,里面也添加小数(主要对应double浮点数)
%u,里面添加无符号字符
%p,指针
%%,输出一个百分号
%zd,size_t类型