C语言知识点九: 完整的数据类型和运算符的总结

1.数据类型

图中有*的是C99所增加的。


2.数据类型及其转换说明和字节数

类型

转换说明

字节数

int

%d

2

4

unsigned int

%u

2

4

short

%d

2

unsigned short

%u

2

long

%ld / %Ld

4

unsigned long

%lu / %Lu

4

long long

%lld / %LLd

8

unsigned long long

%llu / %LLu

8

signed char

%c

1

unsigned char

%c

1

float

%f

4

double

%f

8

long double

%lf / %Lf

8

16

 注意:

C编译器系统把浮点数常量都按双精度处理,分配8个字节。

例如:

float a = 3.14159;//(在VC++编译器中会发出警告)

 

所以,可以在常量的末尾加专用字符,强制指定常量的类型。

例如:

float a = 3.14159f;

3.运算符



基本运算符

名称

说明

=

赋值运算符

int number;

number = 2018;

赋值行为从右往左进行

+

加号运算符

二元运算符

int a;

a = 4 + 6;

-

减号运算符

二元运算符

int number;

number = 20 – 5;

-和+

符号运算符

一元运算符

int rocky;

rocky = -12;

*

乘法运算符

二元运算符

int a;

a = 3*4;

/

除法运算符

二元运算符

float a;

a = 6.0/4.0;

a得 1.000000

其结果a = 1,小数部分被丢弃(截断)

11 / 5 = 2;

11 / -5 = -2;

-11 / -5 = 2;

-11 / 5 = -2;

11 / 5.0 = 2.2;

总结:只要有一个不是整数,得出的小数结果就不会被截掉,反之,都是整数,小数部分就不会被截掉

%

求模运算符

二元运算符

只适用于整数,不适用于浮点数

12 % 5 = 2

结果为左侧的整数除以右侧的整数的余数

++

递增运算符

见下面代码举例

--

递减运算符

: 只需一个运算对象的运算符(如负号和sizeof)称为一元运算符;

两个运算对象的运算符(如加法运算符和乘法运算符)称为二元运算符。

(1).


 很明显在表达式语句a_post = a++中先将a的值赋给了a_post,之后a才自增1,

 第二个表达式语句就不再缀述了。


(2).


不知道大家知不知道这两者的差别及其原因,知道的可以略过

其实很简单:

第一个while循环中的a++ < 9 ,a先和9比较后再自增,所以到a = 8时继续执行循环,然后a自增1打印出9。

第二个while循环中的++a < 9, a先自增再和9比较大小。

在这里说明一下尽量不要写像这样的表达式语句a = a++或者 b = n++ + n++,这样的表达式语句很容易理解错误,所以建议不要这样写代码,可读性不强。但不要将上面的while循环写成下面的这种形式:

while(a < 9)

{

       Printf(“%d ”, a);

   a = a + 1;

}

这样写虽然容易理解,但可能有人会怀疑你不是真正的C程序员。

(哈哈哈哈哈哈,make a joke!偷笑)

 

运算符的优先级(从高至低)

运算符

结合律

()

从左行右

+ - (一元)

从右行左

*/

从左行右

+ - (二元)

从左行右

=

从右行左

 其实这个不需要死记,跟我们的加减乘除的运算规则是一样的!

猜你喜欢

转载自blog.csdn.net/weixin_41588502/article/details/80546153