生活中我们处处会遇见选择,那我们如何将这类情景用C语言展现出来呢?
这时我们就来认识一下选择语句
举一个例子: 如果你好好学习你就可以有个好的工作,反之不好好学习那就没有好工作。那我们如何写出这样的代码呢?
请看下图
在这幅图我们认识了新的语句 - if语句,对此我们不深入了解。
7.循环语句在生活中,有很多事情我们必须每天去做。比如吃饭、睡觉,甚至一直敲敲敲。
那对于需要一直进行的事情我们又如何用C语言来表达呢?
请看下图
通过此图我们可以发现当打印出while括号里文字的次数超过200000次后就变成了一位"大牛"。
那之后我们还会学习除while循环语句的for循环和do while循环。
希望大家最终也成为一名大牛。
8.函数对于函数,想必大家都并不陌生,那在C语言中什么是函数呢?
对于两个数的求和,我们可以写出上图代码,可是如果我要在主函数外写出一个用于计算和的函数呢?我们可以这样去做:
我们a,b两个值传给了Add这个函数,在Add函数中进行了计算并传给了我们的sum,让我们的问题得到了很好的解决。
9.数组我们要存储1-10个数我们怎么存储?
那如果是要存储1-100个数呢?
我们如果用上图办法可以会令人烦躁,故我们引入了数组这个概念。
什么是数组 :顾名思义,就是数字的组合,将多个数字存在一起。
我们很好的将10个数组合在一起,并给它初始化0。
那每个数都具有编号,我们称这种编号为下标
| int arr[10] | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
对此我们初步了解了什么是数组,那我们现在初步学习如何去使用一个数组。
我们通过for循环找到数组的下标并对其赋值,然后利用for循环将其打印,实现了数组的基本使用。
10.操作符C语言的操作符可能是所以语言中最多的,那接下来就让我们看看由哪些操作符。
算术操作符
+ - * / %
移位操作符
<< >>
位操作符
& ^ |
赋值操作符
= += -= *= /= &= ^= |= >>= <<=
单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
关系操作符
> >=
< <=
!= 用于测试“不相等”
== 用于测试“相等”
逻辑操作符
&& 逻辑与
|| 逻辑或
条件操作符(三目操作符)
exp1 ? exp2 : exp3
逗号表达式
exp1, exp2, exp3, …expN
下标引用、函数调用和结构成员
11.常见关键字[ ] () . ->
11.1 typedefauto 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
typedef全称为type define叫做重新定义,对于太长的类型我们可以将其重新定义。
如图所示
将unsighed int形式变换称uint减少了时间。
11.2 static关键字static本意就是静止的意思,在C语言中是用来修饰变量和函数的。
1. 修饰局部变量-静态局部变量
2. 修饰全局变量-静态全局变量
3. 修饰函数-静态函数
11.2.1 static修饰局部变量1.
2.
分别打印的是什么呢?
为什么仅仅修饰了局部变量就导致了两个程序的结果完全不同呢?
static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束, 生命周期才结束。
11.2.2 修饰全局变量那加上static会发生什么呢?
我们会发现编译器会对此情况报错
那是什么导致错误的发生呢?
一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用, 不能在其他源文件内使用。
11.2.3 修饰函数在右侧的函数加上static会发生什么呢?
我们发现它爆出了错误,那这又是什么造成的呢?
一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。
后续其他的关键字我们以后再来聊。
12. #define定义常量和宏简单认识什么是#define定义常量,定义宏
13. 指针 13.1 内存内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。
所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节
为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。
| 内存 | |
| 一个字节 | 0xFFFFFFFF |
| 一个字节 | 0xFFFFFFFE |
| 一个字节 | ... |
| ... | ... |
| 一个字节 | 0x000000001 |
每个变量都有它的地址,那让我们来看看它的地址:
我们可以通过%p来查出a所在的地址。
那取出a的地址又应该如何存放呢?
我们引入了一个新的变量 - 指针变量,通过此变量我们可以将取出来的地址存放在变量中。
我们用过&取出a的地址,放在pa变量当中。
那我们通过此整形类型的指针也可以推出别的类型指针
如
同样的道理我们可以应用到别的类型,希望大家可以去尝试一下。
13.2 指针变量的大小我们可以知道无论是什么类型的指针在32位的条件下都是4个字节
那在64位下呢?
在32位下 - 4个字节
在64位下 - 8个字节
14. 结构体有没有可以将多个类型包含在一起的类型呢?
我们引入了结构体这个概念,结构体是C语言中特别重要的知识点,结构体使得C语言有能力描述复杂类型。
一个人有性别、年龄、体重、姓名,这些用单一的类型是无法完全覆盖的,这样我们创建出了结构体类型,用来描绘生活中复杂的对象。
那我们如何使用结构体呢?
对此我们的初识C语言就结束了,以后还会不定期的写博客,希望大家多多支持!



