标识符与关键字,常量和变量

2023-11-17

标识符

标识符是有效字符序列,是一个对象的名字。用于标识用户自己定义大的变量、符号常量、函数名、数组名、类型名等。前面学习大的例子中的整型变量num、浮点型变量fnum、字符变量ch等等,均为用户定义的标识符。

命名规则:

·不能是关键字

·只能由字母、数字和下划线组成,且区分字母大小写

·名称的第1个字符必须是字母或者下划线,不能是数字

·名称中间不能有空格

·标识符可以为任意长度,但最好不要超过31个字符

·不要和C语言库函数名称相同

例如:

思考:MyMotherland和Mymotherland是同一个标识符吗?   不是

只要标识符中存在不同的字符(包括大小写),都视作两个不同的标识符,因此,他们是不同的表标识符。(命名规则第2条) 

建议:为了增强程序的可读性,在为变量、函数等命名时,尽量使用有意义的标识符,即做到“见名知意”。例如,一个人的年龄可用age,姓名可用name等;如果名称需要多个单词组合,可以采用匈牙利名称法。其规则是每个单词的第一个字母大写,例如学生姓名变量可用标识符StduntName

关键字

关键字(keyword) 又叫保留字。他们是C语言,预先定义好的字符序列,具有特殊的含义
和用法,使用者不能将其作为标识符( 见标识符命名规则)。ANSIC中有32个关键字。

关键字构成了C语言语法的全部,在程序设计的IDE中关键字将会以特殊样貌显示。例如,
在DEV-C++中会以加粗字显示。通过观察这些关键字的状态,可以很快的发现,在编写代
码的过程中,是否有拼写错误。

常量

常量是在程序运行过程中不能改变的量。程序员可以在程序中直接书写常量

整数常量 

浮点数常量 

注意:
(1) 小数1.0和整数1是不同的。虽然两者在数值.上是相等的,但两者类型不同。
不同的数据类型,在计算机的运算过程中采用的方式也不同,最终会导致结果不同。
在需要小数1.0时,千万不要偷懒,写作1。如: 1.0/2、 1/2结果不同,前者等于0.5,后者等于0。
(2)实型常量默认是double型的实数,如果在数的后面加字母F或f,则认为是float型的实数。如: 1.65f 与1.65,floata=3.14编译时 会出现警告。
 

字符常量

注意:由于有ASCII码的存在,将码值和字符关联在一起。所以一个字符常量的表示方法有多种,可以使用字符本身,也可以使用数值,在程序的编写过程中尽量使用字符本身,这样可以提供程序的可读性。如: 'A' 与6存储在计算机内时完全一样。.
 

变量

变量是在程序运行过程中其值可以改变的量。
变量的名称必须用标识符来标识。变量根据数据类型可以分为不同的变量类型。
如整数变量、浮点数变量和字符变量等,不同类型变量的存储空间是不同的。
变量代表一个有名字的、具有特定属性的一个存储单元
变量用来存放数据,也就是存放变量的值。
变量必须先定义,后使用

变量定义的本质是按照变量的数据类型给便变量分配一定的存储空间,格式如下 

这里暂时不用关心存储类别,在大多数使用情况下是不指明的,默认缺省为auto类别。
类型说明符是整型、浮点型或字符型的说明符,如int、 double等 。
相同类型的各个变量,可以在一行语句中定义。各变量间用逗号隔开,语句末尾以分号表示结束。
int a,b;                                                                                             auto int a,b;

float c;                                                                                             auto float c;

unsigned int Ua,Ub;                               =                                       auto unsigned int Ua,Ub;

char c1,c2,c3;                                                                                  auto char c1,c2,c3;

变量的赋值

变量只有通过赋值的方式才能使变量的第三要素(变量的值)有意义。
变量赋值需要使用赋值运算“=”。
变量的赋值,有两种方式,一是:先定义后赋值,二是:定义的同时进行赋值

●对一个变量赋值之后,该值被存储在分配给该变量的内存空间中。
●不允许对多个未定义的同类型变量连续初始化,如上图所示。
●初始化时一般应使“=”右边表达式的数据类型和“=”左边变量的类型保持一致,如不一致,系统会进行自动赋值转换。
●只定义未赋值或未初始化的变量,其值是由定义时所使用的存储类型决定的。不同编译器情一
况是不同的.有些编译器下其值是未知的。

 常变量

 

常变量是一种特殊的变量。变量在定义时,在类型说明符前加const说明符,表示该变量是一个
常变量。常变量同样具有变量的三要素:变量名、存储空间和变量值(初值)。特别的是常变量,
必须在定义的同时赋值。并且在程序运行过程中,其值不能改变,体现出常量的性质。
常变量的这种特性适用于某些经常用到的常数数值。如圆周率π。

二者区别 :内存分配与否:define是宏定义,程序在预处理阶段将用define定义的内容进行了替换。系统不为它分配内存。const定义的常量,在程序运行时在常量表中,系统为它分配内存。

编译时类型检查与否: define定 义的常量,预处理时只是直接进行了替换。所以编译时不能进行数据类型检验。const定义的常变量,在编译时进行严格的类型检验,可以避免出错。
 

字符串常量

字符串常量是用双引号括起来的字符序列,字符串常量是不可被修改的。
"hello world"    "542"     "a"    "123abc\n"

字符串常量在内存中的存放形式是连续存放字符的ASCII码值,并且在最末尾加一个结束标志'\0'字符。'\0' 在ASCII码表也是一个字符,其值为0。.

注意:字符串“a”和字符‘a’是不一样的。 

字符串函数

C中有大量操作字符串的函数。注意:需要包含头文件<string.h>

strlen(s1); 返回字符串s1的长度(不含'\0')
strcmp(s1,s2); 如果s1和s2相同,则返回0;如果s1<s2,则返回小于0;如果s1>s2,则返回大于0.

使用printf()函数可以很方便地输出一个字符串常量

 

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

标识符与关键字,常量和变量 的相关文章

随机推荐

  • 基于SpringBoot的文件在线预览神器,支持99%的文件在线预览

    kkFileView简介 kkFileView可以用来搭建文件在线预览服务 在Github上已有5 7k Star 该项目使用流行的SpringBoot搭建 易上手和部署 基本支持主流办公文档的在线预览 如docx xlsx pptx pd
  • Selenium4 新特性

    一 Selenium4 简介 Selenium是一个综合性项目 包含一系列的工具和库 支持Web浏览器的各种自动化操作 软件测试 爬虫领域 RPA领域 优点 开源 https github com SeleniumHQ 兼容性 Chrome
  • 《动手学ROS2》10.1 机器人自主导航技术概述

    动手学ROS2 10 1 机器人自主导航技术概述 本系列教程作者 小鱼 公众号 鱼香ROS QQ交流群 139707339 教学视频地址 小鱼的B站 完整文档地址 鱼香ROS官网 版权声明 如非允许禁止转载与商业用途 10 1 机器人自主导
  • 【华为OD机试真题c++/java/python】云短信平台优惠活动【 2023 Q1

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 某云短信厂商 为庆祝国庆 推出充值优惠活动 现在给出客户预算 和优惠售价序列 求最多可获得的短信总条数 输入描述 第一行客户预算M 其中 0 M
  • 剑指 Offer 13. 机器人的运动范围&剑指 Offer 12. 矩阵中的路径---dfs题目的应对策略

    列举剑指 Offer有关dfs的两道初级题目 来谈谈这种题的自己的心得 剑指 Offer 13 机器人的运动范围 class Solution public int movingCount int m int n int k boolean
  • stata中计算公式命令_stata学习笔记(三):计算五年内的ROA标准差所用到的一些知识...

    1 如何删除某几行的数据 drop if year2 2014 year2 2013 2 如何计算连续几年的标准差 year2为int型 bys stkcd year2 gen roa1 adjroa n 1 bys stkcd year2
  • JavaScript 使用对象字面量创建对象、使用new Object创建对象

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 前言 一 使用对象字面量创建对象 对象字面量 就是花括号 里面包含了表达这个具体事物 对象 的属性和方法 里面采取键值对的形式表示 键
  • 新手怎么在GitHub上传代码?----最新教程

    准备工作 注册github账号 https github com 本地电脑先安装git工具 下载后可一直点下一步 https git for windows github io Git工具中粘贴用 Shift Insert 文件上传 1 进
  • Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedd(究极踩坑完美解决)

    前言 Failed to configure a DataSource url attribute is not specified and no embedd这个错误想必大家已经非常非常熟悉了 关于数据库配置的问题 但是这种错误还有一种坑
  • 2017服务器cpu性能排行,CPU性能怎么看?桌面CPU天梯图2017年12月最新版

    马上注册 结交更多好友 享用更多功能 您需要 登录 才可以下载或查看 没有帐号 注册 x 本帖最后由 哼哈二将 于 2018 4 10 13 44 编辑 CPU性能怎么看 桌面CPU天梯图2017年12月最新版 今天是12月11日 每个月本
  • 【翻译】如何使混合型会议不至于太糟糕

    混合会议又回来了 人们正在享受它们 并发现它们很有用 这是犹他大学的会议科学家约瑟夫 艾伦博士的新研究的惊人发现 这个发现让艾伦博士感到惊讶 当然也让我感到惊讶 像大多数远程团队工作的专家一样 我长期以来一直建议采用 一个远程 所有远程 的
  • 使用Arduino开发ESP32(17):固件更新演示

    文章目录 目的 基础说明 使用演示 通过SD卡更新固件 通过网页更新固件 总结 目的 很多时候我们会有因为bug修复 功能增加等情况需要对已投产使用的设备更新固件 这种情况下再使用工具通过串口烧录固件就不是那么方便了 比较常用的是通过网络或
  • 分享一下

    链接 https pan baidu com s 1RxTElM9DLqSjhKeWPY Ww 提取码 hwsv
  • iframe子页面获取父页面控件赋值时报错Uncaught SyntaxError: Invalid or unexpected token

    在父页面嵌入了一个iframe来实现上传图片 上传成功后获取父页面的一个input并把图片保存路径赋值给它 这是我之前在ssh里面的写法 是可以的 但是拿过来用就不行了 通过浏览器调试发现报错 Uncaught SyntaxError In
  • MySQL监控和预警

    1 摘要 本人从事Java Web开发 在项目开发中会用到很多中间件 本文主要介绍MySQL监控的一点心得和使用 公司DBA也有相应的监控 但是我们的业务比较重要 想做一个备份监控 对MySQL监控需要做监控和预警 首先需要有数据 数据采集
  • Android进阶宝典 -- 插件化1(加载插件中类)

    什么是插件化 插件化对于Android应用能起到什么好处 可能对于插件化不熟悉的伙伴们都会有这个疑问 或许你在项目中已经遇到过这个问题 只不过是不知道需要采用什么样的方式去解决 我们看下面这个场景 一个应用主模块20M 其他3个模块可以看做
  • 国王和金矿问题

    国王和金矿问题 描述 有一个国家发现了max n座金矿 参与挖矿工人的总数是max people人 每座金矿的黄金储量不同为一维数组gold 需要参与挖掘的工人数也不同为一维数组peopleNeed 每座金矿要么全挖 要么不挖 不能派出一半
  • python爬虫学习笔记-CSS(大致了解)

    CSS中文译作 层叠样式表 或者是 级联样式表 是用于控制网页外观处理并允许将网页的表现与内容分离的一种标记性语言 CSS不需要编译 可以直接由浏览器执行 属于浏览器解释型语言 是Web网页开发技术的重要组成部分 那么接下来 继续看下 使用
  • 6种JavaScript判断数组是否包含某个值的方法

    我们在项目开发过程中 经常会要检查一个数组 无序 是否包含一个特定的值 这是一个在JavaScript中经常用到的并且非常有用的操作 下面给出几种实现方式 方式一 利用循环 这种方式是比较老的实现方案 但不可否认的是在浏览器中效率较高 fu
  • 标识符与关键字,常量和变量

    标识符 标识符是有效字符序列 是一个对象的名字 用于标识用户自己定义大的变量 符号常量 函数名 数组名 类型名等 前面学习大的例子中的整型变量num 浮点型变量fnum 字符变量ch等等 均为用户定义的标识符 命名规则 不能是关键字 只能由