c语言-常量和变量

文章目录

  • 一、常量是什么?
    • (1)整型常量:
    • (2)实型常量:
    • (3)字符常量:
    • (4)字符串常量
    • (5)地址常量
  • 二、define 和 const
    • 宏定义
    • const
  • 三、变量是什么?
    • 标识符命名规则
    • 变量的作用域
      • 局部变量
      • 全局变量
  • 四、c语言中常见的关键字
    • 数据类型关键字
    • 控制语句关键字
    • 存储类型关键字
    • 其他关键字


一、常量是什么?

在程序运行过程中,值不能被改变的量。
eg:数字1、2、3、0.1、3.14和字母’a’、‘b’、”hello“等

常量的分类:

(1)整型常量:

整数。如1、2、3、10000、0、-100、0x8A等

(2)实型常量:

有两种表示形式
①十进制小数形式:由数字和小数点组成。如123.456、-12.34等
②指数形式:由于计算机输入或输出时无法表示上标和下标,所以规定以字母e或E代表以10为底的指数,注意:e和E之前必须要有数字,且e和E后面必须为整数,不能写成e4、12e2.5.
正确表示:12.34e3(表示12.34*10^3)、-67.89e-16 (表示-67.89 *10 ^16)等

(3)字符常量:

有两种形式的字符常量
①普通字符常量:用单引号括起来的一个字符
如‘a’、‘B’、‘3’、‘#’。不能写成‘ab’或‘12’,注意单引号只是一个界限符,字符是指用单引号括起来的符号,不包括单引号。字符型在内存中是以ASCII码形式存储的,例如字符‘a’的ASCII码的十进制为97,在存储单元中存放的是97的二进制形式。

ASCII码 是 American Standard Code for Information Interchange 的缩写
ascii
83-53H-S

②转义字符:以字符\开头的字符序列
\n换行
\t水平制表符tab
'单引号
"双引号
\x十六进制形式
十六进制的转义字符 ‘\x56’ :x后面的十六进制数最多两个,最少一个

(4)字符串常量

用一对双引号括起来的若干个字符
如“ABC”、“123”等,用双引号把若干个(0个、1个、更多)字符括起来,字符串不包括双引号。注意不能写成‘abc’、‘123’,单引号内只能包含一个字符,表示字符常量;双引号内可以包含一串字符,表示字符串常量。

(5)地址常量

每一个常量、变量、数组的地址在程序运行期间是不能够被改变的,称为地址常量。

二、define 和 const

宏定义

PI也是常量,数值为3.1415;注意:在进行宏定义时,没有分号结束标记

#define PI 3.1415

const

定义语法:const 类型名 变量名 = 变量值

#include <stdio.h>#define PI 3.1415			// 常量int main(void)
{const int r = 3;		// 只读变量float s = PI * r * r;	// 圆的面积  s = PI x 半径的平方float l = 2 * PI * r;	// 圆的周长  l = 2 * PI * r	printf("圆的周长为:%.2f\n", l);	// 指定小数点后保留2位, 对第3位做,4舍五入printf("圆的面积为:%.2f\n", s);	// 指定小数点后保留2位return 0;
}

三、变量是什么?

变量:在程序运行中,值可以改变的量。
变量代表一个有名字的、具有特定属性的一个存储单元,可以用来存储数据,也就是变量的值。
变量必须先定义后使用。命名规则应符合标识符命名规则。

标识符命名规则

①只能由字母、数字、下划线组成,并且数字不能作为开头。(字母是区分大小写的)

#¥特殊字符不能作为标识符

②不允许是关键字,同一个作用域范围内定义的标识符不允许重名。
③工程实践中:通常常量使用大写、变量使用小写。大小写严格区分

变量的作用域

C语言中的变量,按照作用域的范围可分为两种, 即局部变量和全局变量。作用域是变量可以被访问的区间。

局部变量

局部变量也称为内部变量。局部变量是在一个函数内部或一个代码块中定义的变量,只能在被函数和代码块范围内有效。 离开该作用域后再使用这种变量是非法的。

void test()
{int b = 20; // b是一个局部变量,在test函数内有效
}int main()
{int a = 10; // a是一个局部变量,在main函数内有效test();//块作用域的可见范围是从定义处到包含该定义的块的末尾;块是用花括号“{}”括起来的代码区域,定义在块中的变量具有块作用域。{int c = 30; //c也是一个局部变量,在大括号内有效}
}

主函数main中定义的变量a也只能在主函数内有效,虽然主函数调用了test函数,但a并不在test函数内有效,主函数也不能使用test函数内定义的b变量。

允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。虽然允许在不同的函数中使用相同的变量名,但是为了使程序明了易懂,不提倡在不同的函数中使用相同的变量名。

形式参数也是局部变量。

在一个函数内部,用大括号括起来的一段代码块,叫做程序块。在程序块中定义的变量,也是只在本程序块中才有效的。离开本程序块,就无效,释放内存单元。

全局变量

全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。 但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。

int test(int x, int y)
{int z;z = x > y? x : y;return z;
}int main()
{extern int a, b;printf("%d\n", test(a, b));
}int a = 10, b = 2;

static修饰的全局变量不能被其他文件所访问,只能限制于本文件中访问。成为静态外部变量。

四、c语言中常见的关键字

数据类型关键字

关键字说明
char声明字符变量
double声明双精度变量
float声明浮点型变量
int声明整型变量
short声明短整型变量
long声明长整型变量
unsigned声明无符号类型变量
signed声明有符号类型变量
struct声明结构体变量
union声明共用体或联合数据类型
void声明函数无返回值或无参数,声明无类型指针
enum声明枚举类型

控制语句关键字

关键字说明
for遍历循环
do其后紧跟循环体
while条件循环或死循环
break跳出当前循环
continue终止本次循环,开始下次循环
if条件语句
else条件语句否定分支
goto无条件跳转语句
switch用于多条件判断语句
case多条件判断语句分支
default开关语句的其它分支
return函数返回语句

存储类型关键字

关键字说明
auto声明自动变量
extern声明变量是在其他文件定义
register声明寄存器变量
static声明静态变量

其他关键字

关键字说明
const声明只读变量
sizeof计算数据类型长度(字节数)
typedef给数据类型取别名
volatile所修饰的对象不能被编译器优化

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】进程间通信(匿/命名管道、共享内存、消息队列、信号量)

文章目录 1. 进程通信的目的2. 管道2.1 原理2.2 匿名管道2.3 管道通信场景&#xff1a;进程池2.4 命名管道 3. System V共享内存3.1 操作共享内存3.2 使用共享内存通信 4. System V 消息队列&#xff08;了解&#xff09;5. System V 信号量&#xff08;了解&#xff09;5.1 信…

VirtualBox 解决虚拟机Cable Unplugged 无法上网问题

问题描述 VirtualBox 中的虚拟机无法上网&#xff0c;在虚拟机中查看网络设置显示 Cable Unplugged。 解决方案 选择VirtualBox 上方任务栏的控制->设置->网络&#xff0c;勾选接入网线即可解决。

大学适合学C语言还是Python?

在大学学习编程时&#xff0c;选择C语言还是Python&#xff0c;这主要取决于你的学习目标、专业需求以及个人兴趣。以下是对两种语言的详细比较&#xff0c;帮助你做出更明智的选择&#xff1a; C语言 优点&#xff1a; 底层编程&#xff1a;C语言是一种底层编程语言&#x…

【深入浅出】深入浅出Bert(附面试题)

本文的目的是为了帮助大家面试Bert&#xff0c;会结合我的面试经历以及看法去讲解Bert&#xff0c;并非完整的技术细致讲解&#xff0c;介意请移步。 深入浅出】深入浅出Bert&#xff08;附面试题&#xff09; 网络结构Pre-TrainingFine-Tuning 输入编码词向量编码句子编码位置…

thrift rpc 四种类型的服务端的实现详细介绍

thrift rpc 四种类型的服务端的实现详细介绍 这里主要是使用 thrift 开发的时候服务器端的实现&#xff0c;以及 thrift 提供给我们多钟的服务的实现&#xff0c;以及每个实现的服务器的特点和 API 介绍&#xff0c;TServer 主要包含以下几种实现 TSimpleServer 阻塞的但线程…

Python | Leetcode Python题解之第530题二叉搜索树的最小绝对差

题目&#xff1a; 题解&#xff1a; # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val x # self.left None # self.right Noneclass Solution(object):def isValidBST(self, root):"…

[Prometheus学习笔记]从架构到案例,一站式教程

文章目录 Prometheus 优势Prometheus 的组件、架构Prometheus Server 直接从监控目标中或者间接通过推送网关来拉取监控指标&#xff0c;它在本地存储所有抓取到的样本数据&#xff0c;并对此数据执行一系列规则&#xff0c;以汇总和记录现有数据的新时间序列或生成告警。可以通…

抓住亚马逊、shein新品扶持期,利用测评提升搜索排名与销量

亚马逊的卖家们应该意识到&#xff0c;新发布的产品在上线后的2到4周内&#xff0c;通常会获得平台的流量支持。这一阶段被称为“新品流量黄金期”&#xff0c;在此期间&#xff0c;产品的搜索排名和曝光率通常会比平时更高。因此&#xff0c;如何有效利用这一阶段&#xff0c;…

轻松入门WordPress:在Ubuntu上搭建本地网站并配置公网访问地址

文章目录 前言1. 安装WordPress2. 创建WordPress数据库3. 安装相对URL插件4. 安装内网穿透发布网站4.1 命令行方式&#xff1a;4.2. 配置wordpress公网地址 5. 配置WordPress固定公网地址 前言 本文主要介绍如何在Linux Ubuntu系统上使用WordPress搭建一个本地网站&#xff0c…

华为云计算知识总结——及案例分享

目录 一、华为云计算基础知识二、华为云计算相关案例实战案例一&#xff1a;搭建弹性云服务器&#xff08;ECS&#xff09;并部署Web应用案例二&#xff1a;构建基于OBS的图片存储和分发系统案例三&#xff1a;基于RDS的高可用数据库应用案例四&#xff1a;使用华为云DDoS防护保…

银行金融知识竞赛活动策划方案

根据《中国人民银行**市中心支行“创新金融服务&#xff0c;支持经济发展”业务竟赛活动实施方案》安排&#xff0c;中支决定于9月28日举办**市人民银行系统“创新金融服务&#xff0c;支持经济发展”现场业务竞赛&#xff0c;为确保业务竞赛组织工作顺利开展&#xff0c;特制定…

动态规划 01背包(算法)

现有四个物品&#xff0c;小偷的背包容量为8&#xff0c;怎么可以偷得价值较多的物品 如: 物品编号&#xff1a; 1 2 3 4 物品容量&#xff1a; 2 3 4 5 物品价值&#xff1a; 3 4 5 8 记f(k,w) ,当背包容量为w,可以偷k件物品…

引领数字时代:万码优才如何变革IT人才招聘新体验(这里有更精准的推荐)

目录 引领数字时代&#xff1a;万码优才如何变革IT人才招聘新体验引领未来科技&#xff0c;精准链接IT精英精准匹配&#xff0c;高效对接海量资源&#xff0c;覆盖广泛优化体验&#xff0c;简化流程 全面升级&#xff1a;AI赋能数字人才职业成长AI模拟面试职场千问智能简历评估…

Rocky Linux 9安装后无法远程ssh密码登录解决

在Rocky Linux 9版本中&#xff0c;为了增加安全性&#xff0c;默认情况下禁用SSH root密码登录。这是系统默认设定的规则&#xff0c;我们同样也可以更改它。   允许Rocky Linux 9 root用户通过ssh登录方法&#xff1a; 1.编辑SSH配置文件 2.找到以下内容 PermitRootLogin …

1.2 图像处理基本操作

在本实战中&#xff0c;我们将学习如何使用OpenCV进行基本的图像处理操作。首先&#xff0c;我们将通过cv2.imread()函数读取图像&#xff0c;并使用cv2.imshow()在窗口中显示它。接着&#xff0c;我们将探索如何通过cv2.imwrite()保存图像&#xff0c;并设置不同的参数以控制图…

【C++】哈希表模拟:开散列技术与哈希冲突处理

C语法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与QueuePriori…

「Mac畅玩鸿蒙与硬件18」鸿蒙UI组件篇8 - 高级动画效果与缓动控制

高级动画可以显著提升用户体验&#xff0c;为应用界面带来更流畅的视觉效果。本篇将深入介绍鸿蒙框架的高级动画&#xff0c;包括弹性动画、透明度渐变和旋转缩放组合动画等示例。 关键词 高级动画弹性缓动自动动画缓动曲线 一、Animation 组件的高级缓动曲线 缓动曲线&#…

SpringBoot源码解析(二):启动流程之引导上下文DefaultBootstrapContext

SpringBoot源码系列文章 SpringBoot源码解析(一)&#xff1a;启动流程之SpringApplication构造方法 SpringBoot源码解析(二)&#xff1a;启动流程之引导上下文DefaultBootstrapContext 目录 前言一、入口二、DefaultBootstrapContext1、BootstrapRegistry接口2、BootstrapCon…

ELK之路第三步——日志收集筛选logstash和filebeat

logstash和filebeat&#xff08;偷懒版&#xff09; 前言logstash1.下载2.修改配置文件3.测试启动4.文件启动 filebeat1.下载2.配置3.启动 前言 上一篇&#xff0c;我们说到了可视化界面Kibana的安装&#xff0c;这一篇&#xff0c;会简单介绍logstash和filebeat的安装和配置。…

Python毕业设计选题:基于Hadoop的租房数据分析系统的设计与实现

开发语言&#xff1a;Python框架&#xff1a;flaskPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 系统首页 房屋信息详情 个人中心 管理员登录界面 管理员功能界面 用户管理界面 房屋信…