龙空技术网

C 语言程序设计——数据类型及运算符

编程剑谱 152

前言:

此刻兄弟们对“补码c语言算法”可能比较关怀,兄弟们都想要知道一些“补码c语言算法”的相关资讯。那么小编在网摘上网罗了一些关于“补码c语言算法””的相关资讯,希望姐妹们能喜欢,我们快快来了解一下吧!

数据类型及表达式很重要的,好好​学

学习编程,光看是永远学不会的,的注重实践能力,对其多思考,在理解的基础上多去敲,日积月累,就会对编程有感觉以及兴趣,遇到困难,遇到挫折,很正常,克服就好

数据类型

数据类型:计算机对数据的识别方式和存储长度

1、计算机识别数据的方式

计算机只能识别 0 和 1 ,对于 1001 0110 其解释方式有很多,不同的数据类型其解释就不一样

1001 0110:我可以理解为:无符号数,整型、补码、浮点数、ASCII 码、指针(字节编号),等,怎么确定到底是哪一个?取决于数据类型

2、存储长度

计算机总是以 2 的整数次幂个字节来存储数据,因此常见的长度为:1B、2B、4B、8B

3、数据类型

数据类型有 2 个关键要素,识别方式和长度

上面的两个要素,必须都明确的指出,如果有一个不确定,则不能形成有效的数据类型

4、C 语言中的数据类型(64位)

标识符 长度 名称 识别方式

char 1B 字符型 ASCII码

short 2B 短整型 补码

int 4B 整型 补码

long 8B 长整型 浮点

float 4B 单精度 浮点

double 8B 双精度 浮点

* 8B 地址、指针 字节编号

运算符

1、算术运算符

优先级由高到低:

( ) +/-(正/负号) *,/,% +,-

/ 除法:整型除以整型,结果是整型(截取整数部分)

%取余数:只能是整型量参与运算:char、short、int、long

数学处理类函数:

abs(x) ==> |x|(适用于整型数值)

fabs(x) ==> |x|(适用于浮点值)

sqrt(x) ==> 求 x 的算法平方根

pow(x,y) ==> x 的 y 次方

exp(x) ==> e 的 x 次方

log(x) ==> ln(x)

log10(x) ==> lg(x)

sin(x) ==>

cos(x) ==>

2、关系运算符

> < >= <= != ==

关系运算符的优先级低于算术运算符

关系运算符的运算结果:只有 1(真) 和 0(假)

​其实这样运算的:优先级() > *,所以先进行 2 > 1的运算,其结果为真,也就是1,1*5=5,其最终的输出就为:5

写一个 x 大于 2 小于 10 的数学表达式,10 > x > 2,C语言认为这个写法是错误的,我们是在写程序,不是在写数学表达式,一定的记住:数学表达式跟程序还是有很大的差异的,正确写法:2 < x && x < 10

3、逻辑运算符

! && ||

!(单目运算符:只有一个操作对象),高于双目运算符的优先级

对于逻辑运算符,C 语言会将两侧的当做表达式看待,其最终的结果是:0 为假,非 0 为真,是一个逻辑的判断

4、赋值运算符

除了赋值运算符外,其他任何运算都不能改变变量的值

不能对常量或者表达式进行赋值运算

赋值的本质:覆盖,覆盖空间中的原值

(1)、简单赋值运算符

= :仅仅比 , 运算符优先级高,变量 = 表达式

(2)、复合赋值运算符

+= -= *= /= %=,仅仅比 , 运算符优先级高

n *= 4+6 // n = n * (4 + 6)

引入的意义:可以对 C 中变量名称过长得到解决

(3)、自增、自减运算符

++、--:运算符的本质是赋值运算符

均为单目运算符,优先级高于所有的双目,且优先级低于 !(逻辑非)

++i:先对变量 i 增 1,在参加其后所有运算

i++:先用原值参加后续运算,本条语句执行完毕,在自增 1

5、三目运算符

? : 其优先级仅仅高于赋值运算符

语法:条表 ? 表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"写成这样就好了

标签: #补码c语言算法 #c语言中怎么写次方 #c语言逗号运算符和逗号表达式 #c语言x次方