C语言总结_语句运算符

Posted DS小龙哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言总结_语句运算符相关的知识,希望对你有一定的参考价值。

当前文章复盘C语言的: 位运算运算符、基本运算符、数据类型、变量、for语句、while语句、goto语句、switch语句、运算符优先级强制转换等。

一、变量的命名

变量的命名:   (13个字符)
1. A~Z  a~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 123ul

int main(void)

    //0b101010; //二进制表示形式
    //0x123;    //表示十六进制
    //123       //表示十进制
    int a=0x123;
    return 0;

三、运算符

3.1 逻辑非

#include "stdio.h"

//常量声明: U和L 表示无符号长整型
#define ABC 123UL

int main(void)

    int a=0;
    if(!a)
    
        printf("为真!\\n");
    

    int data=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");
    
    else
    
        printf("第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)); //4

    int 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;

示例:

#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: //类似于else
        
    

    printf("A=%d\\n",A);
    printf("B=%d\\n",B);
    printf("C=%d\\n",C);
    return 0;

以上是关于C语言总结_语句运算符的主要内容,如果未能解决你的问题,请参考以下文章

C语言总结_语句运算符

C语言 对字节的高位和低位进行互换!

零基础学C语言知识总结三:运算符进制转换输入输出

零基础学C语言知识总结三:运算符进制转换输入输出

C语言总结_格式化打印函数字符串运算符

C语言总结_格式化打印函数字符串运算符