【C语言】变量/常量/宏定义,数据类型以及取值范围

2023-11-15

变量和常量是程序处理的两种基本数据对象

变量

变量的意义就是确定目标并提供存放的空间。

变量的命名规则

1.变量名只能是英文字母(A-Z,a-z)和数字(0-9)或者下划线 _ 组成。
2.第一个字母必须是字母或者下划线开头。
3.变量名区分大小写。
4.不能使用关键字来命名。
-关键字列表
image.pngimage.png

基本数据类型

1.char
-字符型,占用一个字节。
2.int
-整型,通常反映了所用机器语言中整数的最自然长度。
3.float
-单精度浮点型。
4.double
-双精度浮点型。

声明变量的语法

数据类型 变量名
-int a
-char b
-float c
-double d

#include<stdio.h>
#include<stdlib.h>

int main(){
    int a;
    char b;
    float c;
    double d;

    a=520;
    b='F';
    c=3.14;
    d=3.141592653;

    printf("表示将数值a加到它所在的位置:%d\n",a);
    printf("表示将字符b加到它所在的位置:%c\n",b);
    printf("表示精确到两位的浮点数,圆周率为:%.2f\n",c);
    printf("表示整个数据占11位,现取九位,圆周率精确到小数点后九位是:%11.9f\n",d);

    system("pause");
    return 0;
}

image.png

常量

1.整型常量:520、1314、123
2.实型常量:3.14、5.12、8.97
3.字符常量:
-普通字符:‘L’,‘O’,‘v’,‘e’
-转义字符:’\n’,’\t’,’\b’
4.字符串常量:“demo”
字符:‘A’,‘b’
字符串:‘Hello world’ 编译器在编译的时候会给他加上一个转义字符 ‘\0’ 空字符表示字符串的结束,故这个字符串有12个字符。
5.符号常量:使用前必须先定义
-定义符号常量 (宏定义)
格式:#define 标识符 常量
例如:

#define MAX "100"

标识符(identifier)【有意思的是标识符念作biao zhi fu】
1.标识符只能是英文字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。
2.必须以字母或下划线开头。
3.标识符区分大小写。
4.不能使用关键字来命名标识符。

image.png

基本类型

整数类型:
-short int
-int
-long int
-long long int
浮点数类型:
-float
-double
-long double
字符类型:
-char
布尔类型:
-_Bool
枚举类型:
-enum

sizeof运算符

sizeof运算符用于获得数据类型或表达式的长度
-sizeof(object);//sizeof(对象);
-sizeof(type_name);//sizeof(类型);
-sizeof object;//sizeof 对象;

#include<stdio.h>
#include<stdlib.h>
#include <stdbool.h>

int main(){
    int i;
    char j;
    float k;

    i=123;
    j='c';
    k=3.14;
    
    printf("size of int is %d\n",sizeof(int));
    printf("size of i is %d\n",sizeof(i));
    printf("size of char is %d\n",sizeof(char));
    printf("size of j is %d\n",sizeof(j));
    printf("size of float is %d\n",sizeof(float));
    printf("size of k is %d\n",sizeof(k));

    //接下来让我们看看基本数据类型所占的字符的大小
    printf("基本数据类型所占字符大小:\n");
    printf("size of int is %d\n",sizeof(int));
    printf("size of short is %d\n",sizeof(short));
    printf("size of long is %d\n",sizeof(long));
    printf("size of long long is %d\n",sizeof(long long));
    printf("size of char is %d\n",sizeof(char));
    printf("size of _Bool is %d\n",sizeof(_Bool));//由于C编译不支持布尔型,导入头文件#include <stdbool.h>即可
    printf("size of float is %d\n",sizeof(float));
    printf("size of double is %d\n",sizeof(double));
    printf("size of long double is %d\n",sizeof(long double));

    system("pause");
    return 0;
}

image.png
【该例遇到了两个问题:
1.输入 _Bool 时显示未定义标识符 Bool 。解决办法:导入头文件#include <stdbool.h>
2.运行结果中文显示乱码。 解决办法:VsCode编写C语言时默认代码格式位utf-8,右下角将代码格式通过编码保存味gbk即可。

取值范围

比特位:CPU能读懂的最小单位 -bit b
字节:内存机构的最小寻址单位 -Byte B
1Byte==8bit
1个字节可以表示多大的数:11111111=255

进制

image.png
二进制——>十进制:2的n次方减一(n为1的个数)

符号位

signed和unsigned

signed表示该符号位可以存放带符号的数据。
unsigned表示该符号位存放不带符号的数据。
默认情况下为signed
-存放signed类型的存储单元中,左边第一位表示符号位。如果该位为0,表示该整数是一个整数,如果该位为1,表示该整数是一个负数。
-一个32位的整型变量,除去左边第一位符号位,剩下表示值的只有31个比特位。
-事实上计算机是用补码的形式来存放整数的值。

补码

1正数的补码是该数的二进制形式
2.负数的补码需要通过以下几步获得:
-先取得该数得绝对值的二进制形式。
-再将第一步所得的值按位取反。
-最后将第二步的值加1.
image.png
最大值和最小值
image.png
虽然补码看起来很麻烦,但是既然使用它就说明他还是有好处的。

基本数据类型的取值范围

image.png
image.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C语言】变量/常量/宏定义,数据类型以及取值范围 的相关文章

  • Spring Cloud RestTemplate调用IP或域名

    在SpringCloud的项目中 我们使用了自动配置的OAuth2RestTemplate RestTemplate 但是在使用这些restTemplate的时候 url必须是服务的名称 如果要调用真实的域名或者ip的url 会有错误 如下
  • 数据库:drop、truncate、delete三者删除的区别

    一 用法和区别 drop drop table 表名 删除内容和定义 并释放空间 执行drop语句 将使此表的结构一起删除 truncate 清空表中的数据 truncate table 表名 删除内容 释放空间但不删除定义 也就是保留表的
  • React与响应式系统

    响应式系统与React 1 React的历史与应用 React的历史 2010年Facebook在其php生态中引入了xhp框架 首次引入了组合式组件的思想 启发了后来的React的设计 2011年Jordan Walke创造了FaxJs
  • 服务器可以放置多少个网站

    服务器可以放置多少个网站 一 网站大小 能影响一个网站大小的因素是比较多的 例如网站的设计 网站里的内容大小 通常网站尺寸比较大 动态页面比较多的 例如视频网站和小说网站 通常对储存的要求也会比较高 所以网站大小必然还是比较大的 一台主机上

随机推荐

  • linux查看ip地址命令ipconfig命令不存在解决方法

    linux查看ip地址命令ipconfig命令不存在 在新版的Linux发行版中 ipconfig已经不行了 不能使用了 那么 Linux查看ip地址应该使用什么命令呢 如何在Linux命令行中查找系统的IP地址 对于许多Linux用户来说
  • SSM之Mybatis(二)Mapper映射文件

    介绍 Mapper映射文件 作用是用来配置SQL映射语句 根据不同的SQL语句性质 使用不同的标签 mapper文件中常用的标签有
  • 数据可视化库 matplotlib 入门 5——饼图

    Matplotlib 库使用入门5 饼图 pie 函数 绘制饼图示例 在前面关于 matploblib 的文章中 笔者分别介绍了 matplotlib 库的安装与配置 常用套路和绘图组件 画布和绘图域的创建 图素的设置 用 plot 函数绘
  • Springboot使用netty应用tcp协议

    介绍 Netty是由JBOSS提供的一个java开源框架 Netty提供异步的 事件驱动的网络应用程序框架和工具 用以快速开发高性能 高可靠性的网络服务器和客户端程序 也就是说 Netty 是一个基于NIO的客户 服务器端编程框架 使用Ne
  • sass中的占位符%,@extend,@mixin(@include)的编译区别和使用场景

    对于下面同一段css 它们的编译效率是不同的 1 使用 extend 基础类icon会出现在编译后的css文件中 即使它可能只是拿来被继承 而不是作为icon这个class单独使用 基础类icon icon transition backg
  • 因为乘法有一个更高的优先级比加法

    为了正确地评估表达式 如4 2 3 我们必须了解运营商做什么 以及正确的顺序 适用于他们 运算符在复合表达式中计算的顺序称为运算符优先级 使用正常的数学优先规则 在加法之前求解乘法的状态 我们知道上面的表达式应该以4 2 3 来计算 以产生
  • 仓山区工业机器人_重磅!富士康东南总部拟入仓山!或建全国第二家工业互联网学院...

    随着福州城市发展加速 众多知名企业纷纷落地 近日 有消息称 著名企业富士康拟来福州建设东南运营总部和研发中心 富士康拟在仓山建设东南运营总部 10月11日 福州投促局在官网发布消息称 富士康工业富联拟在仓山区落地东南运营总部和研发中心 并合
  • Windows命令行初步:更改配色、提示符以及编码方式

    文章目录 启动和退出 窗口标题和提示符 命令行颜色 更改编码 启动和退出 按下win R 调出运行窗口 输入cmd就可以进入命令行了 在Win10以前的系统种 如果在命令行中再输入一个cmd 就会再打开一个命令行 但最近的Win11版本中
  • Java解析XML的几种方法

    Java解析XML有几种方法 本文就讨论是怎么使用这四种方法来解析XML文件 并分析他们的优缺点以及应用场合 1 DOM Document Object Model 优点 1 允许应用程序对数据和结构做出更改 2 访问是双向的 可以在任何时
  • 2022年数维杯国际大学生数学建模挑战赛A题自动地震地平线跟踪解题全过程论文及程序

    2022年数维杯国际大学生数学建模挑战赛 A题 自动地震地平线跟踪 原题再现 随着我国经济社会发展 地质工作的重要性也日益提高 地震资料解释是地震勘探工程的一个重要阶段 可以明确油气勘探的地下构造特征 为油气勘探提供良好和有利的储层 准确的
  • spyglass CDC方法学

    CDC issues 亚稳态 spyglass CDC方法学流程 sdc2sgdc 黑盒子的clock用assume path约束 该goal会产生clockreset的约束文件 利用cdc top down也可以从soc顶层生成block
  • IDEA导入eclipse项目并部署tomcat运行Web项目同时配置打WAR包

    工作中点滴记录 本人比较熟悉常用eclipse开发工具 最近在项目中使用eclipse导入同事提供的项目出现文件上传OSS服务失败报找不到桶地址 但使用IDEA打包运行正常 原因未知 迫不得已只能改用IDEA开发 在使用IDEA导入ecli
  • python-Excel多个表格合并

    时间 2019 02 19 工具 python3 7 1 用到的模块 xlrd 负责读取数据 xlsxwriter 负责写入数据 glob 查找符合自己目的的文件 一 模块安装 pip 注意 这里我用的是pip模块来安装 部分python版
  • 算法设计技巧与分析 答案整理

    算法设计技巧与分析 沙特版 这书答案真难找啊 东拼西凑薅出这么些 https wenku baidu com view 279b9245561252d380eb6ea4 html https wenku baidu com view af5
  • 线性分类模型--感知机(perceptron)

    线性分类模型 感知机 perceptron 1 引言 分类问题 分类是监督学习的一个核心问题 在监督学习中 当输出变量Y取有限个离散值时 预测问题便成为分类问题 基本概念可以参考 机器学习方法概论1 监督学习从数据中学习一个分类模型或分类决
  • 蓝桥杯如何混分

    文章目录 蓝桥杯 一 如何暴力求解 二 举例说明 1 蓝桥杯真题 2 暴力代码 3 正解思路 代码 总结 蓝桥杯 蓝桥杯是OI赛制 也就是说即使不会算法 也可以暴力求解 拿到分数 一 如何暴力求解 可以在电脑的编译器上使用超过时间的循环暴力
  • 高等数值计算方法学习笔记第6章【解线性代数方程组的迭代方法(高维稀疏矩阵)】

    高等数值计算方法学习笔记第6章 解线性代数方程组的迭代方法 高维稀疏矩阵 一 引言 1 例题 说明迭代法的收敛性研究的重要性 2 定义 迭代法 迭代法收敛 解误差 二 基本迭代法 1 雅可比迭代法 2 高斯 塞德尔迭代法 Gauss Sei
  • 探究ConcurrentHashMap中键值对在Segment[]的下标如何确定

    内容 本文对JDK1 7下使用segmentShift和segmentMask求解ConcurrentHashMap键值对在Segment 中的下标值进行了探究和论证 适合人群 Java进阶 说明 转载请注明出处 尊重笔者的劳动成果 推荐阅
  • 新媒体运营数据分析怎么做?

    一 分析数据的意义 了解运营质量 预测运营方向 控制运营成本 评估营销方案 二 新媒体数据分析基本步骤 1 设定目的 提炼出最准确清晰的目的 eg 看看为什么最近公众号涨粉情况不好 近期粉丝增长缓慢 推广没做好 寻找推广错误环节 真正目的
  • 【C语言】变量/常量/宏定义,数据类型以及取值范围

    变量和常量是程序处理的两种基本数据对象 变量 变量的意义就是确定目标并提供存放的空间 变量的命名规则 1 变量名只能是英文字母 A Z a z 和数字 0 9 或者下划线 组成 2 第一个字母必须是字母或者下划线开头 3 变量名区分大小写