C语言-关键字

news2024/11/17 13:45:19
关键字就是c语言已经定义好的名字,直接可以拿过来使用,不需要再次定义
1 数据类型相关的关键字
用于定义变量或者类型
定义变量的语法结构:
类型 变量名;
拓展:变量名属于标识符,标识符(变量名、函数名、重命名和取别名)有命名规则标识符的命名规则:
标识符只能以数字、字母和下划线命名
首字母不能是数字
不能与关键字相同
char 、short、int 、long 、 float、double、
struct、union、enum 、signed、unsigned、void
1、char 字符型 ,用char定义的变量是字符型变量,占1个字节
有符号:-2^7 ~ 2^7-1
无符号:0 ~ 2^8-1
2、short 短整型 ,使用short 定义的变量是短整型变量,占2个字节
有符号:-2^15 ~ 2^15-1
无符号:0 ~ 2^16-1
3、int 整型 ,用int定义的变量是整型变量,在32位以上的系统下占4个字节
有符号:-2^31 ~ 2^31-1
无符号:0 ~ 2^32 - 1
4、long 长整型 用long 定义的变量是长整型的,在32位系统下占4个字节,在64位系统下占8个字节
5、 float 单浮点型 (实数),用float定义的变量是单浮点型的实数,占4个字节
6、double 双浮点型 (实数),用double定义的变量是双浮点型的实数,占8个字节
7、struct 这个关键字是与结构体类型相关的关键字,可以用它来定义结构体类型
8、 union 这个关键字是与共用体(联合体)相关的关键字
9、 enum 与枚举类型相关的关键字
10、signed 有符号(正负)的意思
在定义char 、整型(short 、int、long)
数据的时候用signed修饰,代表定义的数据是有符号的,可以保存正数,也可以保存负数
注意:默认情况下 signed 可以省略 即 int a=-10;//默认a就是有符号类型的数据
11、unsigned 无符号的意思
在定义char 、整型(short 、int、long)
数据的时候用unsigned修饰,代表定 义的数据是无符号类型的数据, 无符号类型的变量只能保存正数和0。
12、void 空类型的关键字
char、int 、float 都可以定义变量
void不能定义变量,没有void类型的变量
void是用来修饰函数的参数或者返回值,代表函数没有参数或没有返回值
测试数据类型所占内存大小
#include <stdio.h>

//测试基本数据类型的所占内存大小

int main(int argc, char *argv[])
{
    char a;
    short b;
    int c;
    long d;
    float e;
    double f;

    //sizeof 是一个运算符,可以获取数据类型所占内存大小
    printf("%d\n",sizeof(a));
    printf("%d\n",sizeof(b));
    printf("%d\n",sizeof(c));
    printf("%d\n",sizeof(d));
    printf("%d\n",sizeof(e));
    printf("%d\n",sizeof(f));


    return 0;
}

测试结果

 因为该编译器是使用的32位的,所以long类型显示的是占4个字节,在64位的编译器上面long类型显示的是占据8个字节。

2 存储相关关键字
register、static、const、auto、extern
1、register 是寄存器的意思,用register修饰的变量是寄存器变量,
即:在编译的时候告诉编译器这个变量是寄存器变量, 尽量 将其存储空间分配在寄存器中。
注意:
(1):定义的变量不一定真的存放在寄存器中。
(2):cpu取数据的时候去寄存器中拿数据比去内存中拿数据要快
(3):因为寄存器比较宝贵,所以不能定义寄存器数组
(4): register只能修饰 字符型及整型的,不能修饰浮点型
register char ch;
register short int b;
register int c;
register float d;//错误的

(5):因为register修饰的变量可能存放在寄存器中不存放在内存中,所以不能对寄存器变量取地址。因为只有存放在内存中的数据才有地址
register int a;
int *p;
p=&a;//错误的,a 可能没有地址

2、 static 是静态的意思
static可以修饰全局变量、局部变量、函数
使用static修饰的变量,此变量保存在内存的静态区空间中
3、 const
const 是常量的意思
用const修饰的变量是只读的,不能修改它的值 const int a=101;//在定义a的时候用const修饰,并赋初值为101
从此以后,就不能再给a赋值了
a=111;//错误的
const可以修饰指针
4、 auto
auto int a和int a是等价的,auto关键字现在基本不用
5、 extern
是外部的意思,一般用于函数和全局变量的声明
3 控制语句相关的关键字
if 、else 、break、continue、for 、while、do、switch case
goto、default
4 其他关键字
sizeof、typedef、volatile
1 sizeof
使用来测变量、数组的占用存储空间的大小(字节数)
例 3:
int a=10;
int num;
num=sizeof(a);
2 typedef 重命名相关的关键字
unsigned short int a = 10;
U16
关键字 ,作用是 给一个已有的类型,重新起个类型名 ,并没有创造一个新的类型
INT16 a;
U8 ch;
INT32 b;
 在 c 语言中没有 INT16 U8 这些关键字
INT16 U8 是用 typedef 定义出来的新的类型名,其实就是 short int unsigned char 的别名
typedef 起别名的方法:
1 、用想起名的类型定义一个变量
short int a;
2 、用新的类型名替代变量名
short int INT16;
3 、在最前面加 typedef
typedef short int INT16;
4 :就可以用新的类型名定义变量了
INT16 b;和 short int b;//是一个效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/642125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于Axios发请求(get或post)的参数问题

版本说明&#xff1a; {"name": "wx_vue_3.0","version": "0.1.0","private": true,"scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build"…

K-Means聚类算法

引言 聚类算法是传统机器学习算法中比较重要的一个算法&#xff0c;也是工程项目当中一个比较常用的算法。 一. 分类与聚类 分类 分类其实是从特定的数据中挖掘模式&#xff0c;作出判断的过程。 分类学习主要过程&#xff1a; &#xff08;1&#xff09;训练数据集存在一个类…

mathtype公式右编号对齐

mathtype公式右编号对齐 1.选中文中编辑好的公式&#xff0c;复制 2.mathtype里的点击右编号&#xff0c;将上面复制的公式粘贴到新出现的框内 3.编号设置

聚类效果评估

目录 1.轮廓系数&#xff08;Silhouette Coefficient&#xff09; 1.1 为什么轮廓系数可以评价聚类效果的好坏&#xff1f; 1.2 平均轮廓系数 2. 其他聚类质量函数 2.1方差比准则(Variance Ratio Criterion, VRC) 2.2 戴维斯-博尔丁指数(Davies-Bouldin指数,DB指数) 评价聚…

linux- 定时任务清理日志

定时任务清理日志 一、查找并删除文件1.1 查找文件1.2 查找并删除 二、计划任务&#xff1a;2.1 创建shell脚本&#xff0c;并分配权限2.2 编辑shell脚本2.3 计划任务 linux是一个很能自动产生文件的系统&#xff0c;在实际部署运行中&#xff0c;发现日志文件会占用大量内存&a…

SpringBoot+Thymeleaf 后端转html,pdf HTML生成PDF SpringBoot生成PDF Java PDF生成

SpringBoot 生成PDF Thymeleaf企业级真实应用&#xff1a;将HTML界面数据转换为PDF输出 参考&#xff1a; https://blog.51cto.com/u_13146445/6190475 https://blog.csdn.net/qq_27242695/article/details/115654447 0. 需求 后端渲染pdf生成 &#xff08;thymeleaf根据已有…

Android开发之数据传递的桥梁——Bundle

解释 在安卓sdk源码中&#xff0c;Bundle类的说明是这样的 A mapping from String keys to various Parcelable values. See Also: PersistableBundle public final class Bundle extends BaseBundle implements Cloneable, Parcelable 字符串的键到持久化值的映射。 作用 …

只用2个小时,我把公司的进销存流程全部搬到了线上!

目录 一、前言 二、线下流程的弊端 三、仅用2个小时&#xff0c;如何将流程搬到线上&#xff1f; &#xff08;1&#xff09;基础资料模块 &#xff08;2&#xff09;采购管理模块 &#xff08;3&#xff09;销售管理模块 &#xff08;4&#xff09;库存管理模块 &…

MySQL之视图,触发器与存储过程

一、视图 视图是一个虚拟表&#xff08;非真实存在&#xff09;&#xff0c;其本质是【根据SQL语句获取动态的数据集&#xff0c;并为其命名】&#xff0c;用户使用时只需使用【名称】即可获取结果集&#xff0c;可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的…

基于虚拟化的物联网沙盒操作系统

了解她的技术 先谈谈虚拟化吧&#xff01; 为什么要有虚拟化&#xff1f;物理CPU&#xff0c;物理内存和存储&#xff0c;物理网络的硬件能力越来越丰富的情况下&#xff0c;为了高效、灵活的使用资源&#xff0c;以及在使用时的资源隔离&#xff0c;把硬件资源抽象成软件资源…

机器学习第一课

实现流程&#xff1a; 数据输入->数据基本处理->特征工程->训练->模型评估->新数据输入->预测结果 数据类型&#xff1a; 类型一&#xff1a;特征值目标值 类型二&#xff1a;只有特征值 一、数据基本处理 达到的标准 二、特征工程 三、机器学习&#…

Java+Swing+mysql图书管理系统

JavaSwingmysql图书管理系统 一、系统介绍二、功能展示1.管理员登陆2.图书查询3.图书入库4.借书5.还书6.图书证管理 三、系统实现1.BookManageMainFrame.java 四、其它1.其他系统实现2.获取源码 一、系统介绍 该系统实现了 用户: 书籍查询&#xff0c;借书&#xff0c;还书功能…

本地serve跑vue或者react打包后的项目

本地跑vue或者react打包后的项目 不需要本地服务器跑打包后的build文件夹&#xff08;也可能是 dist文件夹&#xff09;项目。 一般方案&#xff1a; 方案一&#xff1a;本地电脑运行serve服务&#xff08;本文~~&#xff09;方案二&#xff1a;vscode编辑器安装拓展【live …

KEGG注释:KEGG富集可视化柱状图

很久很久以前&#xff0c;看到过文章中的KEGG富集可视化结果图。是对KEGG通路进行注释的。后来在一些测序公司的宣传页上也见到过类似的图&#xff1a; image.png image.png 其实这个图就是多了一个KEGG通路注释&#xff0c;近期也有小伙伴寻求怎么做。网上很多在线工具可以完…

第二节 柱状图

文章目录 1.数据分析流程图2. 列表与数组2.1 二者区别2.2 shape() 函数2.3 生成柱状图比较2.3.1 列表生成柱状图2.3.2 数组生成柱状图2.3.3 扩展案例练习 3. 坐标值3.1 添加横纵坐标值 4. 其他优化细节4.1 屏幕属性4.2 标题属性4.3 练习案例 5. 知识点总结 1.数据分析流程图 数…

功率放大器的工作原理及特点是什么

功率放大器是一种电子设备&#xff0c;用于将输入信号放大到更大的电压、电流或功率级别&#xff0c;以便驱动更大的负载或产生更大的输出功率。这种类型的放大器常用于音频、无线电通信、雷达、声呐、医疗设备和其他应用中。下面安泰电子将为大家介绍功率放大器的工作原理及特…

糖基化修饰:130548-92-4,Fmoc-L-Thr(Ac4-D-Glcβ)-OH,糖肽按照氨基酸和糖的连接方式分为多种

Fmoc-L-Thr(Ac4-D-Glcβ)-OH&#xff0c;糖基化修饰&#xff0c;即糖肽可以按照氨基酸和糖的连接方式分为四类&#xff1a;O 位糖基化、N 位糖基化&#xff0c;糖肽的基本结构多肽链与糖链通过共价键相连蛋白链上连接糖链的位点称为糖基化位点。由于糖肽糖链的生物合成没有模板…

重磅再推 | 基于OpenSearch向量检索版+大模型,搭建对话式搜索

面向企业开发者的PaaS方案 一周前&#xff0c;阿里云OpenSearch发布的LLM智能问答版&#xff0c;面向行业搜索场景&#xff0c;提供企业专属问答搜索服务。作为一站式免运维的SaaS服务&#xff0c;智能问答版基于内置的LLM大模型提供问答能力&#xff0c;为企业快速搭建问答搜…

Linux系统安装mysql8完整无脑步骤

1&#xff1a;卸载原有REPO源 查询已经存在的mysql及相关依赖包 rpm -qa | grep mysql此时你会看到一堆列表&#xff0c;使用 yum 命令依次卸载 yum remove mysql-xxx-xxx-xxx接下来删除 mysql 的残留目录及文件&#xff0c;先用下面的命令找出所有mysql相关的文件夹 find …

报表工具Stimulsoft Reports用户手册:如何激活控件

Stimulsoft Reports.Net是一个基于.NET框架的报表生成器&#xff0c;能够帮助你创建结构、功能丰富的报表。StimulReport.Net 的报表设计器不仅界面友好&#xff0c;而且使用便捷&#xff0c;能够让你轻松创建所有报表&#xff1b;该报表设计器在报表设计过程中以及报表运行的过…