从零开始的C语言生活----------变量,分支与循环

1.类型创建变量,运算中的第一缕分支

在C语言中,变量的意思十分容易理解,就是变化的量。

之前我们学习了类型,那么,类型是做什么的呢?类型就像是月饼的模具

侵删

像int,char,double之类的类型就是月饼的模具,变量则是月饼,根据其内容物的不同,进行不同的分类,加工与运行。

此外,变量创建的时候需要一个初始化才可使用,不然在visual studio编译器上就会显示成这样

要想解决这个问题,只要在i前面加一个int 就好了(这里是有空格的)

需要注意的是,这里的=不是数学里的=,这里的意思是将0赋值给i

变量除了在类型上有分类外,所处”坑位“不同,发挥的作用,使用的优先级也会有所差异。在这种分类下,我们可以将其分为全局变量与局部变量。

顾名思义,全局变量就是在整个工程中想使用都可使用,局部变量就只能在规定区域内使用,大家不妨猜猜谁的优先级最高?大家想象一下,如果全局变量优先级最高,…——你是一个苦逼的程序猿,在老板的”贴心照顾“下,去修改一下石山代码上的诡异玩意,你在一个{}里改了一个变量,结果楞是一个屁没放,然后大海捞针地去找一个又一个相关变量………

int main()

{

int i=0;

1

hnhnjbnbuui-=jkm^^^^^^

{

int i=1;

2

}

}

如这行伪代码所示,红色的是全局变量,绿色的是局部变量。

大家不妨猜猜看,我分别在1和2处插入printf("%d\n",i);,那么打印出来的结果会是什么呢?

1:0

2:1

说到0和非0,这里有一个有意思的冷知识。在计算机中,0代表假,非0则代表真。这是计算机最基本的一个逻辑,又或者说,与电子元件的通断路有关

2.算术操作符

——是小学的加减乘除吗?

算术操作符有个更平易近人的名字,运算符

+与-,*与/

这四个操作符都有两个操作数,这类操作符也被称为双目操作符,分别执行加减乘除四则运算,运算方法与数学基本相同,唯一需要注意的是计算机在类型上的逻辑,一种类型决定一种算法,int类型不可能算出float类型的玩意。

此外,还有一个有趣的符号,大家不妨猜猜%是干什么用的?加减乘除这些(✿^‿^)最基本的运算已经完成了,但除法所衍生的一个逻辑无法通过计算机的四则运算以任意方式实现,又或者说,/和÷似乎略有不同,余数咋办?

的确,求模/求余运算想想都是不可或缺的,不过,这有衍生出了一个逻辑问题,浮点除法咋办(˘•灬•˘),为了防止词不达意,c语言程序设计师们共同规定:%只能用于int类型的变量运算

这时候又有人要问了,草哥草哥,如果有负数怎么办?这个嘛,我们规定结果的运算号由第一个运算数的正负决定,例如——

#include<stdio.h>

int main()

{

//1

printf(“%d\n”,-8%5);

//2

printf(“%d\n”,8%5);

//3

printf(“%d\n”,8%-5);

//4

printf(“%d\n”,8.0%5);

return 0;

}

好,大家都很认真,答案是-3,3,3,3.0,

看吧,用我的小学逻辑想想,小数都有了,哪来的余数啊?!

第四个是伪人吧?

3.赋值操作符

——是你最初的模样,也是你能自加,自减,自我改变的地方

1.初始化与赋值

在这个变量第一次在一条完整的运行逻辑上出现时,也就是我们创建这个变量时,给一个初始值,就是所谓的初始化。

接着,如果我在后续想改变这个值,也十分简单,一个=就可以了

int i=1;

i=100;

这样就搞定了,当然,人在江湖混,身份都是自己给的,这儿的=被称作赋值操作符,用跟官方的话说,就是将100赋给i。

赋值操作符可以连续赋值,当然,我是不太建议,毕竟不容易观察运行细节,万一有了什么BUG,一调试就出来了。

=的基本逻辑是将等号右边的量赋给左边

2.复合赋值符

在编写代码时,我们经常对变量进行自加自减的操作——

int a=0;

a=a+3;

a=a-6;

赋合赋值符就是一个对赋值符的简化,例如上面的操作可以简化为如下型式

a+=3,

a-=6,

当然,复合赋值符远不只这些,其他我们之后再聊

4.单目操作符

——双目是有两个操作数,那么单目是

单目只有一个操作数,有++,--,+,-等操作符。+和-就是我们常说的正与负,在这里草哥就不赘述。接下来,让我们聊聊++与--吧。

++和--分别是自增一和自减一,同时它们还有前置和后置之分。前置时,是先操作,再运行到程序。比如,

int a=1;

int b=1;

printf(“a=%d\n b=%d\n”,a++,++b);

结果是a=1 b=2

5.强制类型转化

——强扭的瓜不甜,但解渴

很多时候,我们的数据类型往往与需要的不同,这时候,如果束手无策,可以考虑强人所难,例

double i=15.1;

//但我们想要整型

int i=(int)15.1;

这样i就变成了15