前言:
大家好,我是良辰丫,初来乍到,承蒙厚爱。学习了一段时间编程且浅读几本书籍,决定与君共勉,每隔一段时间进行一次总结,充实自己。这篇文章从头到尾简单的带大家梳理一下C语言,让大家对C语言有一定的认识,这样大家在学习C语言的过程中就容易很多了!!!废话不多说,我们开始初识C语言,gogogo!!!
望你所拼命争取的,最后都能如你所愿!!!
目录
- 1、编程语言
- 2、C语言简介
- 3、第一个C语言程序
- 4、数据类型
- 5、变量和常量
- 5.1 定义变量的方法
- 5.2 变量的命名规则
- 5.3 变量的分类
- 5.4 变量的使用
- 5.5 变量的作用域和生命周期
- 5.6 常量
- 6、 字符串+转义字符
- 6.1 字符串
- 6.2 转义字符
- 7、注释
- 8、选择语句
- 9、循环语句
- 10、函数
- 11、数组
- 11.1 数组定义
- 11.2 数组下标
- 11.3 数组的使用
- 12、操作符
- 13、常见关键词
- 13.1 关键字 typedef
- 13.2 关键字static
- 13.2.1 修饰局部变量
- 13.2.2 修饰全局变量
- 13.2.3 修饰函数
- 14、#define 定义常量和宏
- 15、指针
- 15.1 内存
- 15.2 指针变量的大小
- 16、结构体
1、编程语言
- 计算机行业发展迅速,短短几年时间,各个编程语言成为了热门,C语言,C++,Java,Python等。那么编程语言到底是什么呢?
- 人类有自己的沟通语言,中国人用汉语实现交流沟通,英国人用英语进行交谈。那么如果我们用汉语和一个不会汉语的英国人交流,那肯定达不到效果。
- 与人类类似,计算机也有自己可以直接识别的语言—->机器语言。
- 编程语言(programming language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。在电脑领域已发明了上千不同的编程语言,而且每年仍有新的
编程语言诞生。很多编程语言需要用指令方式说明计算的程序,而有些编程语言则属于声明式编程,说明需要的结果,而不说明如何计算。编程语言的描述一般可以分为语法及语义。语法是说明编程语言中,哪些符号或文字的组合方式是正确的,语义则是对于编程的解释。 目前通用的编程语言有两种形式:汇编语言和高级语言。
如果刚接触编程语言,听不懂很正常,知识需要日积月累,人不是一生下来就会跑的,满怀激情,朝着心中的方向一往直前,最终鲜花会绽放!!!
2、C语言简介
- C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
- 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的
C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。 - 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 [1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
- C语言是一门面向过程的计算机编程语言,与
C++
,Java
等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
3、第一个C语言程序
#include int main(){ printf("hello world\n"); printf("我是叶良辰\n"); //双引号里面的内容为字符串,printf的固定格式 return 0; }
代码解释:
- 第一行引入输入输出头文件,stdio.h包含了标准输入输出库的信息
举个不太恰当的例子,借用了人家库函数的东西不得向人家打个招呼嘛?这样才显得礼貌- main函数是程序的入口,一个程序中main函数有且仅有一个
一个程序是从main函数开始运行的,没有main函数程序就没有了头绪。- printf是C语言输出语句,把想打印的内容打印到屏幕上
printf是库函数(输出语句),使用需要头文件stdio.h,
输出语句的内容需要用双引号引用(C语言固定格式)- \n表示换行,这是一种转义字符,后续了解
- return 0表示正常结束程序
- 分号表示一句指令结束
4、数据类型
数据类型 | 所占字节(32位) | 类型名称 |
---|---|---|
char | 1 | 字符数据类型 |
short | 2 | 短整型 |
int | 4 | 整形 |
long | 4 | 长整型 |
long long | 8 | 更长的整形 |
float | 4 | 单精度浮点数 |
double | 8 | 双精度浮点数 |
//计算各种数据类型的大小#include int main(){ printf("char:%d\n", sizeof(char)); printf("short:%d\n", sizeof(short)); printf("int:%d\n", sizeof(int)); printf("long:%d\n", sizeof(long)); printf("long long:%d\n", sizeof(long long)); printf("float:%d\n", sizeof(float)); printf("double:%d\n", sizeof(double)); return 0;}
运行截图
解释:sizeof计算空间大小(单位为字节)
5、变量和常量
顾名思义变量是可以修改的量,比如商品的价格,可以涨价和掉价,有幅度变化;而常量是固定不可变的量,比如你的出生日期,性别等,这是不可以修改的。
5.1 定义变量的方法
int age = 10;char f = 'Y' ;
定义变量的格式
数据类型 变量名 = 赋值
5.2 变量的命名规则
命名有一定的规则,由C语言所规定的
- 只能由字母(包括大写和小写)、数字和下划线( _ )组成。
- 不能以数字开头。
- 长度不能超过63个字符。
- 变量名中区分大小写的。
- 变量名不能使用关键字。
注意:命名一定要有意义,让别人有一目了然之感,如下代码
可以让别人很容易看出定义了一个年的变量int year = 0;
5.3 变量的分类
- 局部变量
- 全局变量
#include int year = 2020;//全局变量int main(){ int local_year = 2022;//局部变量 //下面定义的变量有问题吗?是否会有重定义的问题? int year = 2010;//局部变量 printf("global = %d\n", global); return 0;}
总结:
哈哈!上面的局部变量global变量的定义其实没有什么问题的!
当局部变量和全局变量同名的时候,局部变量优先使用
不断学习,注意细节,积累编程思想,不断突破自己
5.4 变量的使用
#include int main(){ int num1 = 0; int num2 = 0; int sum = 0; printf("输入两个数:"); scanf("%d %d", &num1, &num2); sum = num1 + num2; printf("sum = %d\n", sum); return 0;}
&为取地址符,看到这个,大家又产生一种疑惑了嘛?
printf中引用变量没有使用&,而scanf却使用了,一个大大的问号浮在脑海
scanf是从键盘输入东西,引用&符号是调用变量的地址,从而达到键盘输入不同的数据【这里的不同数据指的是数据大小不同,而不是数据类型】。%d只能输入整型数据,但可以输入各种大小,比如3,5,7。如果没有取地址符,只是引入了某个数值,达不到键盘任意输入目的。
想必读到这里大家已经对变量有了一定的认识了,恭喜大家又上了一个阶梯!!!
5.5 变量的作用域和生命周期
作用域是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
- 局部变量的作用域是变量所在的局部范围。
- 全局变量的作用域是整个工程。
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。
- 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
- 全局变量的生命周期是:整个程序的生命周期
5.6 常量
C语言中的常量通常有下列几种:
- 字面常量
- const 修饰的常变量
- #define 定义的标识符常量
- 枚举常量
#include enum Sex{ MALE, FEMALE, SECRET};//括号中的MALE,FEMALE,SECRET是枚举常量int main(){ //字面常量演示 //3.1415926;//字面常量 //2022;//字面常量 //const 修饰的常变量 const float p = 3.14f; //这里的p是const修饰的常变量 pai = 5.14;//是不能直接修改的! //#define的标识符常量 演示 #define NUM 100 printf("num = %d\n", NUM); //枚举常量演示 printf("%d\n", MALE); printf("%d\n", FEMALE); printf("%d\n", SECRET); //注:枚举常量的默认是从0开始,依次向下递增1的 //也可赋值依次递增 return 0;
上面例子上的 p 被称为 const 修饰的常变量, const 修饰的常变量在C语言中只是在语法层面限制了变量 p 不能直接被改变,但是 p 本质上还是一个变量的,所以叫常变量。
暂时看不懂枚举常量也没关系,这段代码只是带大家了解接触一下各种常量,后续会详细讲解各个知识点
6、 字符串+转义字符
6.1 字符串
printf("hello 叶良辰.\n");
这种由双引号引起来的一串字符称为字符串字面值,或者简称字符串。
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。上面字符串的\0省略了,但是在内存中存在【后续了解】
6.2 转义字符
我们要在屏幕上打印一个目录: e:\code\test.c
我们该如何写代码?
#include int main(){ printf("e:\code\test.c\n"); return 0;}
在屏幕上打印的结果是什么呢?
为什么会出现这样的结果呢???
这里就不得不提一下转义字符了。转义字符顾名思义就是转变意思。
下面看一些转义字符。
转义字符 | 解释 |
---|---|
\” />
9、循环语句
10、函数
11、数组
11.1 数组定义
11.2 数组下标
11.3 数组的使用
12、操作符
|