【自动类型转换】 当运算符的两边出现不一致类型时,会自动转换成较大的类型(即,能表达更大范围的数的类型)


【强制类型转换】 ·要把一个量强制转换成另一个类型(通常是较小的类型),需要: (类型)值 。 (只是从那个变量计算出了一个新的类型的值,它并不改变那个变量,无论是值还是类型都不改变)
···强制类型转换的优先级高于四则运算

【bool】

【函数】 函数是一块代码,接收零个或多个参数,做一件事情,并返回零个或一个值

【调用函数】
·函数名(参数值)
·()起到了表示函数调用(即,指利用函数名及参数列表调用已经定义的函数。包括函数申明和函数定义两个部分)的重要作用
·即使没有参数也需要()
·如果有参数,则需要给出正确的数量和顺序
·这些值会被按照顺序依次用来初始化函数中的参数
【函数返回】 ···函数知道每一次是哪里调用它,会返回到正确的地方
【从函数中返回值】 ·可以赋值给变量;·可以再传递给函数;·甚至可以丢弃
···e.g.


·················

【没有返回值的函数】
·void 函数名(参数表)
·不能使用带值的return (可以没有return)
(如果函数有返回值,则必须使用带值的return)
·调用时不能做返回值的赋值
【函数的先后关系】 C的编译器自上而下顺序分析你的代码,所以要把要调用的函数放在前面,后面调用时才能检查你对该函数的调用是否正确

【函数原型】
·函数头,以分号“;”结尾,构成了函数的原型
·函数原型的目的是告诉编译器这个函数长什么样
·名称
·参数(数量及类型)
·返回类型

【参数的传递】
·如果函数有参数,调用函数时必须传递给它数量、类型正确的值
·可以传递给函数的值是表达式的结果,这包括:
·字面量
·变量
·函数的返回值
·计算的结果

···C语言再调用函数时,永远只能传值给函数
【传值】
·每个函数有自己的变量空间,参数也位于这个独立的空间中,和其他函数没有关系
·过去,对于函数参数表中的参数叫作“形式参数”,调用函数时给的值,叫作“实际参数”

·由于容易让初学者误会实际参数就是实际在函数中进行计算的参数,误会调用函数的时候把变量而不是值传进去了,所以不建议继续用这种古老的方式来称呼它们
【本地变量】
·函数的每次运行,就产生了一个独立的变量空间,在这个空间中的变量,是函数的这次运行所独有的,称作本地变量
·定义在函数内部的变量就是本地变量
·参数也是本地变量
·生存期:什么时候这个变量开始出现了,到什么时候它就消亡了
·作用域:在(代码的)什么范围内可以访问这个变量(这个变量可以起到作用)
·对于本地变量,这两个问题的答案是统一的:大括号内——块
【本地变量的规则】
·本地变量是定义在块内的
·它可以是在定义函数的块内
·也可以是定义在语句的块内
·甚至可以随便拉一对大括号来定义变量

·程序运行进入这个块之前,其中的变量不存在,离开这个块,其中的变量就 消失了
·在块外面定义的变量在里面仍然有效
·块里面定义了和外面同名的变量则掩盖了外面的

·不能再一个块内定义同名的变量
·本地变量不会被默认初始化
·参数再进入函数的时候被初始化了
···调用函数时的逗号&逗号运算符
···调用函数时的圆括号里的逗号是标点符号,不是运算符
···f(a,b)
```f((a,b)) 此时就要先做最里面的括号内的运算
【逻辑运算】 ···逻辑运算是对逻辑量进行的运算,结果只有0或1
逻辑量是关系运算或逻辑运算的结果

e.g.表达数学中的区间
错误表达: 4<b<6 ,这样的式子不是C能正确计算的式子,因为4<x的结果是一个逻辑值(0或1),该逻辑值无论是哪个都比6小
正确表达:x>4&&x<6
优先级:!>&&>||


【短路】
···逻辑运算是自左向右进行的,如果左边的结果已经能够决定结果了,就不会做右边的计算
···对于&&,左边是false时就不做右边了
···对于||,左边是true时就不做右边了
·····所以,最好不要把赋值,包括复合赋值组合进表达式
“错误”示范:

【条件运算符】
e.g.···count=(count>20)?count-10:count+10
···条件、条件满足时的值和条件不满足时的值
相当于:

优先级:条件运算符的优先级高于赋值运算符,但是低于其他运算符
【嵌套条件表达式】
e.g.

···条件运算符是自右向左结合的
【逗号运算】
逗号用来连接两个表达式,并以其右边的表达式的值作为它的结果。逗号的优先级是所有的运算符中最低的,所以它两边的表达式会先计算;逗号的组合关系是自左向右,所以左边的表达式会先计算,而右边的表达式的值就留下来作为逗号运算的结果
1.


2.


···逗号运算主要是在for中运算

在每一区中作多个运算
569

被折叠的 条评论
为什么被折叠?



