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

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.mrgr.cn/news/92728.html

相关文章:

  • 【C++编程探索】01前缀和来临!优点多多!八千字详解
  • 我的AI工具箱Tauri+Django环境开发,支持局域网使用
  • AI关于SHAP分析与列线图(算法)解释线性模型矛盾之处的解释
  • QT异步编程之线程池QThreadPool
  • 网络流算法: Edmonds-Karp算法
  • 【算法方法总结·一】二分法的一些技巧和注意事项
  • PyQT(PySide)的上下文菜单策略设置setContextMenuPolicy()
  • 机器学习--(随机森林,线性回归)
  • ICP-通过一组匹配的3D点估计相机运动
  • 大模型WebUI:Gradio全解12——LangChain原理、架构和组件(3)
  • 细说 Java 线程池
  • AI 数据集生成和模型微调框架 Distilabel 高级指南:深度功能与最佳实践
  • Apache Spark中的依赖关系与任务调度机制解析
  • 数据库MySQL,在终端输入后,提示不是内部命令等
  • 《机器学习数学基础》补充资料:矩阵的LU分解
  • 硬编码(三)经典变长指令一
  • 千峰React:函数组件使用(3)
  • STL 算法库中的 min_element 和 max_element
  • React 中 useState 的 基础使用
  • LeetCode 热题 100_有效的括号(69_20_简单_C++)(栈;栈+哈希表(建立左右括号的对应关系))