学习C语言最先学习就是数据类型了;同时数据类型也是C语言中最基础的东西了,只有将数据类型学好了,日后我们才能更好的学习C语言,同时学好数据类型也有很大的用途,日后我们在定义数据类型变量时一定要注意相应的数据类型要一致,以免写出的程序报错。
数据类型的分类大的主要分为:基本类型、构造类型、指针类型(*)、空类型(void)
基本类型中又分为:整型{基本整型(int)、短整型(short )、长整型(long)}、字符型(char)、实型{单精度型(float)、双精度型(double)}
构造类型中又分为:数组、结构体(struct)、共用体(union)、枚举(enum)
字节数在vc++ 6.0中数据类型占用的字节数情况
int 类型一般占4个字节数
flaot类型一般占4个字节数
double类型一般占8个字节数
long double类型一般占10个字节数
char一般占一个字节数
在数据类型这一块其中还涉及到一些细节是需要我们注意的1、除单个的0是十进制常量外,其他以0开始的都是八进制常量
2、数据后加u或U:表示的是无符号类型数,如637u、196U
3、数据后加l或L:表示的是长整型,如7L
4、C语言中不用二进制形式表示整数
数据类型这还要注意一些特定的概念有效数字:就是一个数从左边第一个不为0的数字数起到精确的数位止,所有的数字(包括0)称为有效数字
实型常量的表示方法实型也称为浮点型。实型常量也称为实数或浮点数。在C语言中,实数只采用十进制。它有两种形式:十进制小数形式,指数形式。
- 十进制数形式:由数字序列和小数点组成。如3.14、-0.5、.0、0.、0.0等
- 指数形式:通用形式为nex或nEx。如3E5表示的是3*10^5;2.7E-8表示的是2.7*10^-8;0.5E6表示的是0.5*10^6
- 总结一下这里指数表示方法中特别要注意的是字母e或E之前的尾数部分必须有数字;e或E后面的指数部分也必须是整数,指数部分无整数或小数均是错误的
例如:E7,6e,7e5.5;这些写法都是错误的;希望可以引起的大家的注意
字符型常量字符型常量是由一对单引号括起来的的单个字符构成的
常见的字符常量对应的ASCII需要我们记住
1、字符‘A’~‘Z’的ASCII值是65~90
2、字符‘a’~‘z’的ASCII值是97~122
3、字符‘0’~‘9’的ASCII值是48~57
字符串常量字符串常量是由一对双引号括起来的字符序列,如“123456”、“I am a student”
需要注意的是每个字符串都有自己的结尾符‘ ’;所以字符串的长度都要比我们所看到的字符个数多一位
符号常量符号常量就是使用标识符定义一个常量
定义方法:#define PI 3.1415926
当我们时常要引用一个量时就可以采用这种宏定义的办法来定义一个数
变量变量就是指程序运行过程中,其存储的值可以被改变的量就称为变量
我们时常会看到程序有像:
int a=5,b=6,c=7;
float x=2.0,y=3.0;
这其实就是在给变量符初值;其中的int和float是指数据类型
要注意的是这里变量赋的初值都是要与前边的数据类型对应一致,不让容易导致计算结果产生误差
C语言中运算符的优先级
| 优先级 | 运算符 | 名称 | 结合方向 |
| 1 | () | 括号(函数等),改变优先级 | 从左至右 |
| [ ] | 数组下标 | ||
| . | 访问成员 | ||
| -> | 通过指针访问成员 | ||
| 2 | ++、-- | 自增、自减运算符 | 从右至左 |
| & | 取地址 | ||
| * | 取内容 | ||
| ! | 逻辑求反 | ||
| ~ | 按位求反 | ||
| +、- | 正、负号 | ||
| (类型) | 强制类型转换 | ||
| sizeof() | 计算机占用内存大小 | ||
| 3 | *、/、% | 乘法、除法、取模 | 从左至右 |
| 4 | +、- | 加、减 | |
| 5 | <<、>> | 按位左移、按位右移 | |
| 6 | <、<=、>、>= | 小于、小于等于、大于、大于等于 | |
| 7 | ==、!= | 等于、不等于 | |
| 8 | & | 按位与 | |
| 9 | ^ | 按位异或 | |
| 10 | | | 按位或 | |
| 11 | && | 逻辑与 | |
| 12 | || | 逻辑或 | |
| 13 | ?: | 条件运算符 | 从右至左 |
| 14 | =、+=、-=、*=、/=、%=、 <<=、>>=、&=、^=、|= | 赋值运算符 | 从右至左 |
| 15 | , | 逗号(顺序) | 从左至右 |
C语言中基本算数运算符共有5个,分别是+(加)、-(减)、*(乘)、/(除)、%(取模)
1、基本运算符都为双目运算符(需要两个操作数)结合方向是自左向右
2、%(取模)运算符仅用于整型变量或整型常量的运算
3、+(加)、-(减)、*(乘)、/(除);运算的两个操作数既可以是整数,也可以是实数。当两个操作数都是整数时,其结果仍是整数;如果两个数的运算其中有一个是实型,则结果为double型
4、/(除法)运算符,当对两个整型的数据相除时结果为整数,会自动舍去小数部分
自增自减运算符:++和--自增自减运算符++和--是两个单目运算符,具有右结合性。功能是作用于变量使变量的值自增1或自减1
(1)、++i相当于i=i+1;(即就是先运算在赋值)
(2)、--i相当于i=i-1;(同样也是先运算在赋值)
(3)、i++相当于i=i;赋值完之后i在自增1;(即就是先赋值在运算)
(4)、i--相当于i=i;赋值完之后i在自减1;(同样也是先赋值在运算)
对于初学的同学来说针对上边的这个情况不好理解;下面我们来看这一段代码,按照代码来分析理解
#include运算符void main() { int i=8; printf("%dn",++i); printf("%dn",--i); // printf("%dn",i++);//i++的实质就是下边的这两步 printf("%dn",i); i=i+1; // printf("%dn",i--); printf("%dn",i); i=i-1; // printf("%dn",-i++); printf("%dn",-i); i=i+1; // printf("%dn",-i--); printf("%dn",-i); i=i-1; printf("%dn",-i); }
1、逗号表达式:用逗号运算符连接两个以上的表达式所形成的新表达式就是逗号表达式
下面我们来看这段代码
#includevoid main() { int i; printf("1+2+3=%dn",(i=1,i=i+2,i=i+3)); printf("i=%dn",i); }
2、逻辑运算符
(1)、&&与运算
(2)、||或运算
(3)、!非 运算
&& 真真得真,真假得假
|| 有真为真
! 取反
类型转换在进行各种类型的数据混合运算时,一般先要进行类型转换。将不同类型的数据转换为同种类型后然后进行计算
自动转换:原则是“精度不降低”。低级数据自动转化成高级数据
强制转换:有时为了达到目的,需要将一个表达式的类型转变成所需要的类型,这时就要用到强制类型转换了
转换形式为:(类型)(表达式)
(int)4.23转换后的结果为4
(float)3转换后的结果为3.000(注意这里的精度,精度主要用格式控制符来控制)
总结一下:数据类型这一块大致就这些内容是特别值得我们注意的,掌握好这些基础在我们日后的学习中,一切都会变的更加顺利,同时也会使我们的基础变得更加的稳固;希望我们大家可以一起共同努力共同进步。



