c语言程序设计基本数据类型(C语言程序设计)

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

c语言程序设计基本数据类型(C语言程序设计)(1)

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

数据类型

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

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

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

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

2、存储长度

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

​其实这样运算的:优先级() > *,所以先进行 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"写成这样就好了

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页