C89:论符号
一.简介
C运算符总共有13种:
1.算术运算符:* - + /
2.关系运算符:> < == != >= <=
3.逻辑运算符:! && ||
4.位运算符:<< >> ~ | ^ &
5.赋值运算符:= 及扩展赋值运算符
6.条件运算符:?:(C语言中唯一的三目/三元运算符)
7.逗号运算符:,
8.指针运算符:* &
9.求字节运算符:sizeof
10.强制类型转换运算符:(类型)
11.分量运算符:->
12.下标运算符:[]
13.其他:如函数调用运算符
二.算术运算符
三.关系运算符
四.逻辑运算符
五.位运算符
(1)左移(<<)右移运算(>>)
(2)异或运算(^)
(1) & 位操作符
int fun(int value) { int cnt = 0; while(value) { cnt++; value = value & (value - 1); } return cnt; } void main(void) { printf("%d", fun(65535)); }
三.浮点数
合法的浮点数有两种表示形式:
(1) 十进制小数形式。他有数字和小数点组成,必须有小数点。例如(123.)(123.0)(.123)。
(2) 指数形式。如123e3。字母e(或E)之前必须有数字,e后面的指数必须为整数。
规范化的指数形式里面,小数点前面有且只有一位非零的数字。如1.2345e8
四.变量
1.16位编译器
char :1个字节
char*(即指针变量): 2个字节
short int : 2个字节
int: 2个字节
unsigned int : 2个字节
float: 4个字节
long: 4个字节
unsigned long: 4个字节
double: 8个字节
long long: 8个字节
2.32位编译器
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
long: 4个字节
unsigned long: 4个字节
double: 8个字节
long long: 8个字节
3.64位编译器
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
long: 8个字节
long long: 8个字节
double: 8个字节
unsigned long: 8个字节
五.%(求余)
%(求余)要求两边都是整型
六.<<(左移) >>(右移)
位运算中操作符左移一位表示乘以2,操作符右移一位表示除以2
七.||(逻辑与)
1 2 3 4 5 6 7 | int i=0,a=1,b=2,c=3; i=++a||++b||++c; //i=1 //a=2 //b=2 //c=3 |
八.操作符Sizeof()
1.结构体
16位机子的编译器无内存对齐
2.数组
1 2 3 4 5 | char s[]= "12345" ; cout<< sizeof (s)<<endl; //输出6 char s[100]; cout<< sizeof (s)<<endl; //输出4 |
3.指针
1 2 3 4 5 | char * s= "12345" ; cout<< sizeof (s)<<endl; //输出4 void * p= malloc (100); cout<< sizeof (a)<<endl; //输出4 |
4.变量
九.[]和*
1 | char * a[10]; //[]的优先级高于*,所以这是一个指针数组,并不是一个指针变量指向的数组 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)