曾无好事来相访,赖尔高文一起予。这篇文章主要讲述C语言总结_语句运算符相关的知识,希望能为你提供帮助。
当前文章复盘C语言的: 位运算运算符、基本运算符、数据类型、变量、for语句、while语句、goto语句、switch语句、运算符优先级强制转换等。
一、变量的命名
变量的命名:(13个字符)
1. A~Za~z
2. 0-9
3. _
4. 说明:只能字母和数字开头。不能使用关键字。
//左值和右值
unsigned int a=123;
//4个字节
const int b=456;
char c=A;
float d=123.456;
//123.456 浮点数常量
char *p="123456";
//"123456"字符串常量
二、常量数据格式
#include "stdio.h"//常量声明: U和L 表示无符号长整型
#define ABC 123UL
#define ABC 123ulint main(void)//0b101010;
//二进制表示形式
//0x123;
//表示十六进制
//123//表示十进制
int a=0x123;
return 0;
三、运算符 3.1 逻辑非
#include "stdio.h"//常量声明: U和L 表示无符号长整型
#define ABC 123ULint main(void)int a=0;
if(!a)printf("为真!\\n");
int data=https://www.songbingjia.com/android/1234;
printf("%d\\n",!!data);
//1
return 0;
3.2 位运算
&
:全1为1,有0为0
|:全0为0,有1为1
^:相同为0,不同为1
~:1为0,0位1
>
>
:右移运算,低位溢出高位补0
<
<
:左移运算符,高位溢出,低位补0
位运算符使用较多的地方:
(1) 单片机里寄存器操作
(2) 协议加密解密、压缩算法、各种算法。
(3) 当做标志位使用
#include "stdio.h"
//系统里需要有8个状态位,需要存放8个状态位--------当做寄存器使用
int main(void)unsigned char a=0;
//8个位范围:0~7//如何将a第7位,置1呢?
a|=1<
<
7;
//如何将a第2位,置1呢?
a|=1<
<
2;
//将2的第3位和第4位置1
a|=0x3<
<
3;
//如何判断第7位是0还是1呢?
if((a>
>
7)&
0x1)printf("第7位的值为真!\\n");
elseprintf("第7位的值为假!\\n");
//bool sbit位定义 。
//bool a;
sbit LED1=P1^1;
return 0;
3.3 sizeof运算符
?Sizeof运算符
#include "stdio.h"
int main(void)int a=1234;
printf("%d\\n",sizeof(a));
//4int b=1;
printf("%d\\n",sizeof(b));
//4
return 0;
3.4 三目运算符
#include "stdio.h"
int main(void)/*
int a;
scanf("%d",&
a);
//取地址int a,b;
a=a&
b;
//与int a,b;
a=a*b;
//乘号int *a;
//指针类型
*/int a;
a=8>
5?123:456;
//if(8>
5)a=123;
elsea=456;
printf("%d\\n",a);
//123
return 0;
3.5 运算符的优先级和强制转换
#include "stdio.h"
int main(void)int a=123+456-12*5/78;
//高优先级先结合,再依次....
//如果优先级同级,执行顺序是从左边到右边。
//优先级最高:()小括号int b=123456789;
char a=(char)b;
//强制转换,只是取低8位
//欺骗编译器,告诉它,b是char类型。char a=8;
int b=(int)a;
//强制转换
printf("b=%d\\n",b);
//还是字符8
return 0;
四、语句 4.1 for循环语句
#include "stdio.h"
//系统里需要有8个状态位,需要存放8个状态位--------当做寄存器使用
int main(void)int a=123,b=456;
int cnt=0;
for(a=0;
a<
5;
a++)for(b=0;
b<
5;
b++)if(a==2)break;
//跳出最近的一层循环cnt++;
/*
for(;
;
)//死循环while(1)//死循环do//死循环
while(1);
*/
printf("cnt=%d\\n",cnt);
//20
return 0;
4.2 while循环语句
?while循环语句
#include "stdio.h"//系统里需要有8个状态位,需要存放8个状态位--------当做寄存器使用
int main(void)int a=0,b=0;
int cnt=0;
while(a<
5)while(b<
5)if(a==2)break;
b++;
cnt++;
b=0;
a++;
printf("cnt=%d\\n",cnt);
//20
return 0;
4.3 goto语句
在平常的逻辑代码里面,不推荐使用goto语句。
常用的地方:错误处理,某某程序初始化失败,就释放资源等操作。
#include "stdio.h"//系统里需要有8个状态位,需要存放8个状态位--------当做寄存器使用
int main(void)int cnt=0;
AA: //标签的定义,可以放在函数范围内的任意位置。(不能超出函数范围)
printf("123\\n");
if(cnt==5)goto DATA;
cnt++;
goto AA;
DATA:
return 0;
?Goto语句常用在错误处理:
#include "stdio.h"//goto语句在错误处理里使用
int main(void)if(LED_Init()<
0) //表示该函数返回值错误goto ERROR;
if(KEY_Init()<
0) //表示该函数返回值错误goto ERROR;
/*....*/
/*....*/
ERROR:
//释放资源,结束程序
return 0;
4.4 Switch语句
Switch语句主要用在多分支选择结构----有很多种条件/情况。
实际代码里,常用于菜单选择:
#include "stdio.h"
int main(void)switch(cmd) //cmd的值传入之后,与case后面的比较,成功之后再执行语句case 1: //case 后面值只能是常量,而且不能重复
break;
//跳出最近的一层switch语句
case 2:/*......*/
break;
case 3:
break;
/*......*/default: //类似于else
printf("所有的条件都不成立!\\n");
return 0;
【C语言总结_语句运算符】示例:
#include "stdio.h"//投票系统,有3个待选举的人,A,B,C ,有10张票
int main(void)int i;
int A=0,B=0,C=0;
int data;
for(i=0;
i<
10;
i++)printf("请投票(范围1~3):");
scanf("%d",&
data);
switch(data) //data的值传入之后,与case后面的比较,成功之后再执行语句case 1: //case 后面值只能是常量,而且不能重复
A++;
break;
//跳出最近的一层switch语句
case 2:
B++;
break;
case 3:
C++;
break;
// default: //类似于elseprintf("A=%d\\n",A);
printf("B=%d\\n",B);
printf("C=%d\\n",C);
return 0;
推荐阅读
- smarty 模板引擎注意细节
- 安装samba文件共享服务
- maven构建docker镜像三部曲之二(编码和构建镜像)
- MySQL数据库(数据类型-整数)
- [ 数据结构--C语言 ] 无头单向非循环链表的简单实现(单链表)
- DB2记一次表压缩的测试
- 图解数据结构串全面总结
- A/B测试与灰度发布
- Terraform 常用语法