c学习笔记(三)C数据类型与运算符
一、数据类型
K&R C给出了7个数据类型的关键字,C90标准向其中添加了2个关键字,C99标准又添加了3个。
原来的K&R关键 | C90关键字 | C99关键字 |
---|---|---|
int | signed | _Bool |
long | void | _Complex |
short | _Imaginary | |
unsigned | ||
char | ||
float | ||
double |
整形类型
有符号
数据类型 | 同义类型 |
---|---|
signed char | |
short | short int 、 signed short、signed short int |
int | signed 、signed int |
long | long int、signed long、signed long int |
long long(C99支持) | long long int、signed long long、signed long long int |
无符号
数据类型 | 同义类型 |
---|---|
_Bool | bool(stdbool.h文件中定义) |
unsigned char | |
unsigned short | unsigned short int |
unsigned int | unsigned |
unsigned long | unsigned long int |
unsigned long long | unsigned long long int |
1.char 类型也是一个标准的整数类型,然而,char的同义字可以是 signed char 或者 unsigned char,这是编译器决定的。因为这是由使用实现版本自行选择的。
2.char 类型总是占用一个字节,(sizeof(char) == 1),并且1字节至少8位
3.对于其他标准数据类型,C语言定义最小的存储空间大小,
二、可移植的类型
#include <inttypes.h>
int16_t 是一个有符号的16位整形值
uint32_t 表示32位无符号整形
#include<complex.h>
可以直接用complex代替_Complex,imaginary代替_Imaginary
三、sizeof
以字节为单位给出数据大小
int main(void) {
printf("char 类型大小%u bytes\n",sizeof(char));
printf("int 类型大小%u bytes\n",sizeof(int));
printf("long 类型大小%u bytes\n",sizeof(long));
printf("double 类型大小%u bytes\n",sizeof(double));
printf("6.28大小%u bytes\n",sizeof(6.28f));
printf("6.28大小%u bytes\n",sizeof(6.28));
return EXIT_SUCCESS;
}
char 类型大小1 bytes
int 类型大小4 bytes
long 类型大小4 bytes
double 类型大小8 bytes
6.28大小4 bytes
6.28大小8 bytes
二、运算符
1,算术运算符
目数 | 运算符 | 功能 |
---|---|---|
双目运算符 | + | 加号 |
- | 减号 | |
* | 乘号 | |
/ | 除号 | |
% | 取余 | |
单目运算符 | - | 取负 |
++ | 自增 | |
– | 自减 |
2,赋值运算符
运算符 |
---|
= |
+= |
-= |
*= |
/= |
%= |
&= |
|= |
^= |
<<= |
>>= |
3,关系运算符
运算符 |
---|
< |
<= |
== |
>= |
> |
!= |
4,逻辑运算符
运算符 |
---|
&& |
|| |
! |
5,位运算符
运算符 |
---|
& |
| |
^ |
~ |
<< |
>> |
6,其他运算符
运算符 | 含义 |
---|---|
条件运算符 | 表达式1?表达式2::表达式3 |
sizeof | 长度运算符 |
[ ] | 下标运算符 |
. | 结构体成员运算符 |
-> | 指向结构体成员运算符 |
* | 指针运算符 |
& | 取地址运算符 |