c语言程序设计基本数据类型(C语言程序设计)
数据类型及表达式很重要的,好好学
学习编程,光看是永远学不会的,的注重实践能力,对其多思考,在理解的基础上多去敲,日积月累,就会对编程有感觉以及兴趣,遇到困难,遇到挫折,很正常,克服就好
数据类型数据类型:计算机对数据的识别方式和存储长度
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