文章目录
3、C语言数据类型
3.1、整形
C语言中的整形对应数学中的整数,整形变量是用来描述一个整数值的,整形变量经过计算后也只能是整数(整型),不可能出现小数(浮点型).
要求:要学会整形变量的定义,赋值,计算
要学会使用printf函数打印出一些整形变量的值,作为输出和调试。
C语言中整形有三种:
(1)int 整形
(2)short int,又叫做short,短整形(<=整形)
(3)long int,又叫做long,长整型(>=整形)(很复杂的系统才用)
不同机器表示范围不同。
整形打印,算出是小数也会装换成整形
3.2、浮点型
C语言中浮点型对应数学中的小数。浮点型有float和double两种。使用方式相同,不同在于表示范围和精度。float表示的范围小,精度低(小数点后6位);而double表示范围大,精度高。(小数点后16位)
范围是说表示的数有多大,精度是指这个数的分辨率有多细
**注意:printf中打印float或double类型,要是用%f,不能用%d。
说明整数部分有2位,小数点有20位
整数位数超出打印位数,仍然能够打印的
用处:
![
多出来的位数用来做对齐,填充(不常用)
printf()用来调试
f,精度6位
正常打印情况下:
超过精度情况,再打印相同位数:
这个值:在一定程度时错的,如果取小数点后6位是对的,超过精度是错的。因为f的精度不够。
d精度16位
超出精度:
可以看f与do的不同
3.3、字符型
字符型对应ASCII字符。ASCII字符是一种编码,就是用数字编码来表示一个符号的一种方法本质上说,**字符型其实也是整形,只是这些整形数被用来表示一些字符的ASCII编码值,所以叫做字符型**字符型一般用8位二进制表示,无符号字符型范围是0~255.
字符型其实是一种比short还短的整形,所以它可以和int相运算。
char
所以说字符型能和整形相加减,那么在计算机浮点型也可以
3.4、有符号数和无符号数
数学中数是有符号的,有整数和负数之分。所以计算机中的数据类型也有符号,分为有符号数和无符号数。
有符号数:
整形:signed int(简写为 int)
signed long,也写作signed long int,(简写为long)
signed short,也写作signed short int(简写为short)
signed(表示signed int)
浮点型:
signed float(简写为float)
signed double(简写为double)
字符型:
signed char(简写为char)
无符号数:
整形:**整形有无符号数,用来表示一些编码编号之类的东西。譬如身份证号,房间号
unsigned int(没有简写)
unsigned long int(简写unsigned long)
unsigned short int(简写为unsigned short)
浮点数:**没有无符号浮点数。也就是说,小数一般只用在数学概念中,都是有符号的。
字符型:**字符型有无符号数
unsigned char(没有简写)
注意:对于整形和字符型来说,有符号数和无符号数表示的范围是不同的。
譬如字符型,有符号数范围是-128127,无符号数的范围是0255
无符号数运算效率高于有符号数,能用就用,因为计算机还有处理符号位
4、C语言常用运算符
4.1、数学运算符号
4.1.1、常见数学运算符号,跟数学中理解相同
- 加号
- 减号
- 乘号
/ 除号,相除以后的商
% 取余符号,相除以后余数是几
() 括号括起来优先级最高,先计算
4.1.2、跟数学中意义不同的运算符
= 赋值运算符,与数学中的等号完全不同。赋值运算符作用是经过运算后符号左边的部分(左值,一般是一个变量),的值就等于右边部分(右值,一般是常数或变量)了。
(将数组与指针时很有用)
+= a = a + b; 等同于 a += b;
-= a = a - b; 等同于 a -= b;
*= a = a * b; 等同于 a *= b;
/= a = a / b; 等同于 a /= b;
%= a = a % b; 等同于 a %= b;
bianliang1 = bianliang1 + bianliang2;
bianliang1 += bianliang2;
4.1.3、判断运算符
== 等于
!= 不等于
大于
< 小于
= 大于等于
<= 小于等于
4.1.4、逗号运算符
, 逗号运算符的主要作用是用来分割
4.1.5、++与–
++ a++; 等同于 ++a; 等同于 a = a + 1; 等同于 a += 1;
– a–; 等同于 --a; 等同于 a = a - 1; 等同于 a -= 1;
作业:
1、自己查找资料或写代码测试,总结++放在前面和后面的区别(a++和++a区别)
a = 5;
b = a++; // b = 5,因为++后置,先运算后进行+1
a = 5;
b = ++a; // b = 6,因为++前置,先加1,再进行运算
注意:强调程序风格。
所谓程序风格,主要是指写代码的格式,譬如空格,空行,缩进,注释,文件头,函数头等。
等号两边有空格,逗号后面空格,等等注释头
海思规范书写:
越是大公司,越看重程序风格。软件界公认的准则:程序风格不良好的程序是垃圾代码,是废品;写出程序风格不良好的代码的人,是垃圾程序员。
运算符
总结优先度: 特殊运算符(括号、地址类) > 单目运算符 > 算数运算符(乘除>加减) > (移位运算) > 判断运算符(比较>相等) > (位运算) > 逻辑运算符(&&>||) > 三目运算符 > 赋值运算符 > 逗号运算符
针对十进制字面值
<<:左移数据,相当于乘2(右边填0)
》 >>:右移数据,相当于除2(unsigned左填0,signed左边填原来的最高位(因为负数移位还要是负数))