当前位置: 首页 > article >正文

C语言32个关键字

32个关键字

1.基本数据类型

signed unsigned

char int float double short long void

2.构造数据类型

struct union enum

3.数据存储类别

auto static extern register

4.数据优化

const volatile

5. 9条基本语句

if else switch case break default 

while do for return continue goto

6.其他

typedef sizeof

预编译处理符 “#”

#include

#define

#ifndef

#if

#else

#else if

#endif

一、基本数据类型

1.unsiigned:无符号的       

//用来声明一个无符号的变量

unsigned char var;        //var范围0~255

2.signed:有符号的(可以省略不写)

//用来声明一个有符号的变量,数据最高位是符号位,0正1负

signed char var;        //var范围-128~127

3.char:字符型

//用来声明一个字符变量。

//占1个字节空间

//本质也是数字,只是换成了字符的形式

char var;

字符:‘\HHH’        HHH代表转义八进制,最多3位

            ‘\xHH’        HH代表转义十六进制,最多2位

字符串:“”引用,末尾默认有一个‘\0’

                有效字符串:从起始字符开始,到第一个‘\0’之前的字符个数

                总长度:从起始字符开始,到最后的‘\0’        

                        “123abc” 有:6 总:7 

                        “abc1234” 有:7 总:8 

                        “123\0abc” 有:3 总:8 

                        “\012abc” 有:4 总:5   ‘\012’ ‘a’ ‘b’ ‘c’ ‘\0’ 

                        “\x00”   有:0 总:2   ‘\x00’ ‘\0’ 

                        “\018ab0” 有:5 总:6  ‘\01’ ‘8’ ‘a’ ‘b’ ‘0’ ‘\0’

4.int:整型

//占4个字节空间

5.float:单精度浮点型

//占4个字节,保留小数点后六位

6.double:双精度浮点型

//占8个字节,保留小数点后15~16个有效数据

        浮点型:数据有浮动不精确

        浮点型都是有符号数

        十进制:0.5        二进制0.1

                十进制>二进制:小数部分*2,如果满1则写1,不满则写0,一直乘到结束。

7.short:短整型

//占2个字节,0~65535

8.long:长整型

//占8个字节(64bit)或4个字节(32bit)

9.void:空型

//表示函数没有返回值或无形参

void funcation (void);

二、构造类型

1.struct

//用来声明一种结构类型

struct stu

{

        char sex;

        int age;

        float score;

        struct stu *Next;

};

struct  stu var;

2.union

//用来声明一种公用类型,该类型所在空间的大小以其成员占最大的那个为标准

//存入该变量的值以程序中最后存入的数值为当前值

union non

{

        int sex;

        int age;

        float score;

};

union non var;

3.enum

//用来声明一种枚举类型

//规定枚举类型的变量,只能在限定的范围内取值,都则会出现警告(达到数据安全的效果)

enum em

{a = 23, b, c, d = 56, e};//其中b = 24,c = 25 ,e = 57

enum em var;

三、数据的存储类别

1.auto:自动的(可省略不写)

//cpu自主管理存储单元,定义一个局部变量,当他所在的函数调用结束时释放内存

//使用时才分配内存,用完释放

auto char var;

2.static:静态的

//空间不会被释放,被修饰时只能在函数内部调用,其他函数不能调用

static char var;

static void fun();

3.extern:外部的

//想要调用别的C文件某一个全局变量或者调用其他文件的函数可以用extern修饰

extern char var;

extern void fun();

4.register:寄存器

//建议编译器将变量放在cpu内部寄存器中,提高执行效率

//这只是建议,到底有没有放到cpu不清楚,一般使用在循环次数多的地方

//使用时分配内存,使用完释放

register long i = 30000;

四、数据优化

1.const:常的

//被const修饰的变量其值不能被改变,声明该变量时必须初始化

const char var = 100;

char arr[var];

char *const p;//指针变量p不可以改变,但是他所指的值可以改变

char const *p或const char *p;//指针变量可以改变,但里面指向的值不能变

const char * const p;//p地址不可改变,里面得值也不能变

2.volatile:随时会改变的

//被volatile修饰的变量会意想不到的改变

//1.某些变量或寄存器(如状态寄存器)可能会受硬件影响;

//2.在多线程任务中,被其他线程修改(共享内存段)

//3.一个在中断服务中使用到的全局变量

//4.编译器会对c程序进行优化

//为了保证程序不被优化,保证cpu取到的数据是最新的(即提醒cpu每次必须到内存中取出变量当前的值而不是从cache或者寄存器中的备份),使用该关键字修饰,如:

int *p;

*p = 1;

*p = 2;

//编译时,编译器会对上面的语句进行优化,会直接优化成

int *p;

*p = 2;

//为了保证不被优化,加上volatile修饰变量:

int * volatile p;

五、 9条语句

1.顺序结构:0条

声明语句、运算语句、赋值语句等

2.选择结构:2条

if(表达式1)

{语句1;}

else if(表达式2)

{语句2;}

else

{语句3;}

switch(变量)

{

        case 常量1:语句;...;break;         

        case 常量1:语句;...;break;

        case 常量1:语句;...;break;

        default:语句;       

}

3.循环结构:3条

for(语句1;语句2;语句3)

{

        语句4;

        语句5;

         ...

}

while(表达式)

{

        语句;

        ...;

}

do

{

        语句;

        ...;

}while(表达式)

4.转移结构:4条

break        //跳出当前循环

continue        //终止本次循环,从下次循环开始

goto        //无条件转移

return        //返回调用处

六、其他

1.typedef:类型重定义

typedef unsigned char  A        //用A重新定义unsigned char

#define A unsigned char        //用A替换unsigned char

typedef unsigned char *M;

#define unsigned char*

M P1, P2

//对于typdef来说p1,p2都是指针变量

//对于宏定义来说p1是指针变量,p2是指针变量

2.sizeof

//求类型所占字节数

int var = 10;

char g;

g = sizeof(var++);//g = 4;

//这里的var++没有执行,()括号里面的语句不会被执行


http://www.kler.cn/a/566261.html

相关文章:

  • Python代码片段-Excel导入到MongoDB
  • 六、索引优化实战案例
  • vue cli 与 vite的区别
  • next.js-学习5
  • 【北京迅为】iTOP-RK3568OpenHarmony系统南向驱动开发-第5章 UART接口运作机制
  • 《算法宝典:全类型题目索引》
  • torch中维度操作总结(repeat,squeeze,unsqueeze,flatten,transpose)
  • 双足肌肉骨骼机器人 VS 传统钢铁结构机器人:科技新趋势与跨界创新
  • 计算机毕设-基于springboot的软件技术交流平台的设计与实现(附源码+lw+ppt+开题报告)
  • lambda表达式,函数式接口,方法引用,Stream流
  • PCEP介绍
  • Field 对象的使用
  • 基于结构光扫描的汽车前纵梁焊接总成及冲压件自动化三维检测系统研发与应用
  • Logic-RL: 小模型也能强推理,通过基于规则的强化学习提升大语言模型结构化推理能力
  • CentOS上安装Docker Compose(2)
  • Ubuntu 创建新用户及设置权限
  • 页面加载速度,如何优化提升?
  • C++ Primer 容器适配器
  • FPGA之硬件设计笔记-持续更新中
  • 在linux中部署Nginx项目的详细步骤