变量类型和表示方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
变量类型和表示方法
1.什么是变量?一句话,变量是存储数据的值的空间。由于数值的类型有多种,有整数、小数(浮点数)、字符等等,那么对应的变量就有整型变量、浮点型变量、字符型变量。那么变量我们总要给它取个名字吧,这个名字我们叫做标识符。
标识符的命名有一定的规则:
(1).标识符只能由字母、数字和下划线三类字符组成
(2).第一个字符必须是字母(第一个字符也可以是下划线,但被视作系统自定义的标识符)
(3).大写字母和小写字母被认为是两个不同的字符,如A和a 是两个不同的标识符
(4).标识符可以任意长,但只有前32位有效。有些旧的C版本对外部标识符的限制为6位。这是由于链接程序的限制所总成的,而不是C语言本身的局限性
(5).标识符不能是C的关键字
2.从上面的规则中,有个关键字的概念。那么什么叫关键字呢?
从表面字意上也可以看出,关键字是C语言本身某些特性的一个表示,是唯一的代表某一个意思的
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
C语言还包括一些不能用做标识符的扩展关键字。
asm cdecl _cs _ds _es far
huge interrupt near pascal _ss
在给变量命名时要避开这些关键字
变量类型
在8位单片机中常用
unsigned char 无符号字符一字节
unsigned int 无符号整形两字节
其余类型就不说了几乎不用
运算符
一、赋值运算符
= 这里等就不是等于的意思比如a=12; 其意思就是将12这个立即是赋值给符号a 也可以认为将12存入变量a所对应的内存空间c语言中等于是一种关系运算要用两个== 比如
if(1==a)
{
语句1...............
}
if是条件判断语句以后再说
这句的意思就是如果a等于1 就执行语句1
只所以写成1==a 不写成a==1 是防止书写时写成a=1 此语句永远为真换句话说就是不论a为何值语句1都会执行
二、算术运算符
符号功能
+ 正
- 负
* 乘法
/ 除法
% 取模
+ 加法
- 减法
例
a=7%4;
最终a的结果是3,因为7%4的余数是3。
b=7/4;
这样b就是它们的商了,应该是1。
也许有人就不明白了,7/4应该是1.75,怎么会是1呢?单片机系统中,当两个整数相除时,所得到的结果仍然是整数,没有小数部分。如果要得到小数以后会说明.
三、逻辑运算符
逻辑运算符是根据表达式的值来返回真值或是假值。其实在C语
言中没有所谓的真值和假值,只是认为非0为真值,0为假值。
符号功能
&& 逻辑与
|| 逻辑或
! 逻辑非
当表达式进行&&运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。当表达式进行||运算时,只要有一个为真,总的值就为真,只有当所有的都为假时,总的式子才为假。逻辑非(!)运算是把相应的变量数据转换为相应的真/假值。若原先为假,则逻辑非以后为真,若原先为真,则逻辑非以后为假。
还有一点很重要,当一个逻辑表达式的后一部分的取值不会影响整个表达式的值时,后一部分就不会进行运算了。例如: a=2,b=1;
a||b-1;
因为a=2,为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。
五、自增自减运算符
这是一类特殊的运算符,自增运算符++和自减运算符--对变量的操作结果是增加1和减少1。例如:
--Couter; //先将Couter减一再使用Couter的值
Couter--; //先使用Couter的值再将Couter值减一
++Amount; //现将Amount加一再使用Amount的值
Amount++; //类似
六、复合赋值运算符
+= 加法赋值 a+=5 等同a=a+5
-= 减法赋值类似
*= 乘法赋值类似
/= 除法赋值类似
%= 模运算赋值类似
<<= 左移赋值 a<<=1 等同a=(a<<1);
>>= 右移赋值类似
&= 位逻辑与赋值 a&=1 等同 a=a&1;
|= 位逻辑或赋值类似
^= 位逻辑异或赋值类似
说说位与位或等我没只到在8位单片机系统里数据几乎都是8位的如a=1000 1000 b=1001 1000
比如a&b=1000 1000&1001 1000=1000 1000 规则0与任何数(也就是1或0)"与"结果都是0
类似 a|b =1000 1000|1001 1000=1001 1000 规则1与任何数"或"结果都是1
a^b=0001 0000 规则两个数(当然是位)异或如果相同结果是0 不同结果是1 也可这样记任何数(也就是1或0)与1"异或"取反与0"异或"不变
以上规则说全都是按位的与或异或
逗号运算符条件运算符咱们就不讲了太多就不好记了
条件语句
一、if语句
if(表达式) 语句1;
如果表达式的值为非0,则执行语句1,否则跳过语句继续执行下面的语句。
如果语句1有多于一条语句要执行时, 必须使用"{"和"}" 把这些语句包括在其中, 此时条件语句形式为:
if(表达式)
{
语句体1;
}
例如:
if(x>=0) y=x;
if(a||b&&c)
{
z=a+b;
c+=z;
}