数据类型和表达式很重要,请好好学习
学编程,一看就永远学不到,注重实践能力,多思考它,在理解的基础上多敲打,积累起来,就会对编程产生感觉和兴趣,遇到困难,遇到挫折,正常,克服就行了。
数据格式
数据类型:计算机识别数据的方式和存储长度
1、计算机识别数据的方法。
计算机只能识别0和1,对1001 0110的解释有很多种,根据数据类型的不同,解释也不同。
1001 0110:无符号数、整数、补码、浮点数、ASCII码、指针(字节号)等。我怎么知道是哪一个?取决于数据类型
2、存储长度。
计算机总是以2的整数平方存储数据,因此一般长度为1B、2B、4B、8B
3、数据类型。
数据类型有两个关键因素:识别和长度
必须明确指出,如果上述两个因素都存在不确定性,就无法形成有效的数据类型
4、c语言的数据类型(64位)
标识符长度名称识别方法
Char 1B字符ASCII代码
短2B短整数补码
Int 4B整数补充码
长8B长浮点
Float 4B单精度浮点
duble 8b双精度浮点
* 8B地址,指针字节号
运算符
1、算术运算符
优先级从高到低:
()/-(正/负)*、/、%、-
/除:整数除以整数,即整数(整数部分被截断)
%剩馀:只有char、shot、int、long等成型量才能参与运算
数学处理类函数:
Abs(x)==|x|(适用于整数值)
Fabs(x)==|x|(适用于浮点值)
查找Sqrt(x)==x的算法平方根
Pow(x,y)==x的y平方
Exp(x)==e的x平方
日志(x)==ln (x)
Log10(x)==lg(x)
正弦(x)==
Cos(x)==
2、关系运算符
==!====
关系运算符的优先级低于算术运算符
关系运算符的运算结果:1(真)和0(假)
其实这样运算的:优先级()*,所以先做2 ^ 1的运算,结果是真的。也就是1,1 * 5=5,最终输出为5。
写一个x大于2、小于10的数学表达式。10 x 2,C语言认为这个符号是错误的。我们不是写数学表达式,而是写程序。数学表达式和程序仍有很大差异。正确的符号:2 x 10
3、逻辑运算符。
!| |
!(单目运算符:只有一个操作数)高于双目运算符的优先级
对于逻辑运算符,C语言将两边视为表达式,最终结果是0为false,非零为true,是逻辑判断。
4、赋值运算符
除赋值运算符外,任何操作都不能更改变量值
不能向常量或表达式赋值
分配的本质:复盖,复盖空间的原始值
(1),简单赋值运算符
=:独占,运算符优先级高,变量=表达式
(2),复合赋值运算符
=-=*=/=%=,运算符优先级仅高于运算符
N *=4 6 //n=n * (4 6)
介绍意义:在c中,如果变量名太长,可以解决
(3),自增,自减运算符
,-:运算符的本质是赋值运算符
都是单安运营商,优先级高于所有双安,优先级低!(逻辑比)
I:先给变量I加1,然后参加后面的所有运算。
I:首先以原始值参与后续运算,此语句已完成执行,位于自增加1。
5、3眼运算符
?嗯?的优先级高于赋值运算符
语法:酒吧桌子?表1 :表2、前面表达式的结果、真执行表1、假执行表2
获得a和b中最大的值:a
b ? a : b;6、逗号运算符
逗号运算符的优先级是最低的
逗号是用来分隔多个表达式的,其运算结果是:最后一个表达式的运算结果
补充四个问题
1、关于运算符优先级的问题:
(1)、一次只比较两个相邻运算符
(2)、一次只处理相邻两个运算符中的一个
(3)、当前运算符是否运算,取决于与相邻运算符的优先级比较结果:当前运算符 “低于” 其后的运算符,则不运算,否则,就运算
2、数据类型转换
(1)、自动类型转换
在参加运算的两个运算数的数据类型不一样,C 语言会对其进行自动的类型转换工作,其原则如下:
由短类型向长类型进行靠拢,由简单类型向复杂类型靠拢
char-->short-->int-->float-->double
(2)、强制类型转换
语法:(数据类型名称)表达式
source = (double) 1 / 5 //其结果就是double类型
强制类型转换:仅仅是对这个变量的值进行转换,是绝对不可能改变变量的数据类型,且也是运算符,是单目运算符中优先级最低的
3、短路运算
逻辑运算中的0、1铁律:
0 && A ==> 0、1 && A ==> A
0 || A ==> A、1 || A ==> 1
短路运算是仅仅发生在逻辑运算表达式中
在 && 运算符的左侧表达式的值为 0,或在 || 的左侧为非 0 ,此时整个逻辑表达式的结果已经确定,C 语言会发生短路运算,即对于右侧表达式不予运算
4、关于输入/输出函数
(1)、输入、输出是通过 C 语言调用 printf() scanf() 函数实现的
(2)、格式符是决定数值以怎样的方式展现出来
(3)、在scanf()函数的" "中,除了写格式符之外,不要写任何其它东西,"%d%s%c"写成这样就好了