目录

  • 一、常量
    • 1. 整型常量
    • 2. 实型常量(浮点型常量)
    • 3. 字符常量
      • 3.1 普通字符
      • 3.2 转义字符(表格)
      • 3.3 常见字符与ASCII代码表
    • 4. 字符串常量
      • 4.1 字符串所占内存字节数
    • 5. 符号常量
  • 二、变量
    • 1. 常变量
  • 三、标识符

大一下学期学习了C语言、暑假在家没事又把C语言复习了一遍。因此,趁热打铁,把所学内容写成笔记,以便以后复习,也希望能够帮助大家学好C语言。
以下内容如有错误,请大家在评论区指正,谢谢支持,共同进步。 go、go、go !!!


一、常量

在C语言中,数据有常量和变量之分:
若在程序执行过程中,其数值不能发生改变的量称为常量
若在程序执行过程中,其数值可以改变的量称为变量
常量:分为 直接常量 和 符号常量 。直接常量:分为整型常量、实型常量、字符常量和字符串常量。(通常将整型常量和实型常量合称为数值常量)

首先大概看一下关于常量的内容:

  1. 整型常量:就是常整数,包括正整数、负整数和0。有十进制、八进制、十六进制三种表示形式。需要注意的是,八进制常整数在书写时以数字0作前缀;十六进制以0x作前缀。
  2. 实型常量 :又称浮点型常量,采用十进制小数形式 和 指数形式表示。
  3. 字符型常量 :用单引号括起来的单个字符,分为普通字符(‘a’,‘Z’,‘6’,’#’,’?’ )和转义字符(’\n’是换行符、’\t’是水平制表符,横向跳格,8个空格)
  4. 字符串常量 :用双引号括起来的字符串
  5. 符号常量:用标示符代表一个常量,使用之前必须定义,具有一改全改的优点。例如: #define PI 3.14

1. 整型常量

整型常量:包括正整数负整数0

  1. 十进制整数:书写形式通常是整数的写法。例如:0、16、88、666、-99 等。
  2. 八进制整数:书写形式通常在八进制整数的前面加一个数字0(0作前缀)。例如:00、0111、015、021等,它们分别表示十进制整数:0、73、13、17。
  3. 十六进制整数:书写形式通常是在十六进制整数的前面加0x(0x作前缀)。其中每个数字可以是 0 ~ 9、a ~ f 或 A~F 中的数字或英文字母。 例如:0x0(十进制0)、0x111(十进制273) 、0x15(十进制21)、0x21(十进制33 )、0x5a(十进制90 )、0Xa5(十进制165 )……

2. 实型常量(浮点型常量)

实型常量:又称浮点型常量,有 十进制小数形式指数形式 2种表示形式。

① 十进制小数形式:

由数字和小数点组成

例如:3.141590.088.00.123-6.66

② 指数形式:

由于计算机输入或输入是无法表示上角或下角,故规定以字母e或E代表以10为底的指数

指数形式的实型常量 由十进制小数形式 或 十进制整型常量部分 + 指数部分,即e或E之前必须有数字,且e或E后面必须为整数。

错误形式:
e15 【e前面缺少小数部分】
0.35e 【e后面缺少一个整数】
78e-1.2 【1.2 不是整数】


3. 字符常量

3.1 普通字符

普通字符:用单撇号括起来的一个字符

  • 单引号括起来的字符包括:英文字母大、小写字符各26个、数字字符10个,以及空白符(空格符、制表符、换行符),标点和特殊符号(键盘上的共30个),它们也称为C语言的基本字符集。
  • 如’a’,‘Z’,‘6’,’#’,’?’ 等是合法的字符常量,在内存中占一个字节
  • 单引号内如果是一个空格符,也是一个字符常量。
  • 字符常量的值,就是它在ASCII编码表中的值是个从0~127之间的整数,因此字符常量可以作为整型数据来进行运算。
  • 表达式 ‘Y’+32 的值为 121,字符'Y'对应ASCII码值是89
  • 表达式 ‘7’+‘6’ 的值为109,通过查表可以发现'7''6'对应的ASCII码值分别是55和54。应该注意’7’和7是不一样的,作为字符常量'7'所代表的整型常量值是55,7对应的是整型常量7。

3.2 转义字符(表格)

转义字符主要用来表示那些用一般字符不便于表示的控制代码,构成字符常量的控制字符必须用转义字符表示,这种“控制字符”在屏幕上是不能显示的,转义字符虽然包含两个或多个字符,但它只代表一个字符。转义字符的意思是将 \后面的字符转换成另外的意义。

转义字符分为一般转义字符、八进制转义字符和十六进制转义字符。

  • 一般转义字符'\n'是换行符、'\t'是水平制表符(将输出的位置跳到下一个Tab位置,一个Tab位置为8,即横向空8个格),'\?'是一个问号……
  • 八进制转义字符:反斜线后的八进制数可以不用 0 开头,由 反斜杠’’ 和随后的 1~3个八进制数字 构成的字符序列。’\60’’\101’、**’\141’**分别表示字符’0’、‘A’和’a’。因为字符’0’、'A’和’a’的ASCII码的八进制值分别为60、101和141。
  • 十六进制转义字符反斜杠’’字母x(字母x是小写,不能用大写X)及随后的 1~2个十六进制数字 构成的字符序列。’\x30’’\x41’’\X61’ 分别表示字符’0’、‘A’和’a’。因为字符’0’、'A’和’a’的ASCII码的十六进制值分别为0x30、0x41和0x61。

最后一个小知识点:换行符'\n'对应的十进制数是10,可以用八进制数 '\012'表示。

共13个 转义字符 含义(字符值) 作用
1 \' 单撇号 输出单撇号 '
2 \" 双撇号 输出双撇号"
3 \? 问号 输出问号字符?
4 \\ 反斜线 输出反斜线字符\
5 \a 警告(alert) 产生声音或视觉信号
6 \b 退格(backspace) 将光标当前位置后退一个字符
7 \f 换页(form feed) 将光标当前位置移动到下一页的开头
8 \n 换行 将光标当前位置移动到下一行的开头
9 \r 回车 将光标当前位置移动到本行的开头0
10 \t 水平制表符 将光标当前位置移动到下一个Tab位置1
11 \v 垂直制表符 将光标当前位置移动到下一个垂直制表对齐点2
- 转义字符 含义(字符值) 作用
12 \o \oo 或 \ooo 其中o代表一个八进制数字 八进制码对应的ASCLL字符 与该八进制对应的字符3
13 \xh[h···] 其中h代表一个十六进制数字 与十六进制码对应的ASCLL字符 与该十六进制对应的字符

3.3 常见字符与ASCII代码表



4. 字符串常量

字符串常量是用 双撇号 "" 括起来的多个字符的序列,如:“a”、“abc123”、“China”、“你好”……

  • 只要是“双撇号”括起来的,就算只有一个字符也叫字符串,如"a"。字符常量 'a’与字符串常量"a"是不同的。
  • 一个字符在内存中只占一字节,而字符串本质上是多个字符组成的字符数组。C语言规定,在每一个字符串常量的结尾,系统都会自动加一个字符’\0’作为该字符串的“结束标志符”,系统据此判断字符串是否结束。 这里要特别强调一点:’\0’是系统自动加上的,不是人为添加的。
  • ’\0’ 是 ASCII 码为 0 的字符,它不会引起任何控制动作,也不是一个可以显示的字符。
  • 比如字符串常量"CHINA",表面上看它只有 5 个字符,但实际上它在内存中占6个节,‘C’、‘H’、‘I’、‘N’、‘A’、’\0’ 各占一个字节。如果要输出该字符串,’\0’ 不会输出。也就是说,虽然实际上总共有 6 个字符,’\0’ 也包括在其中,但输出时 ‘\0’ 不会输出。系统从第一个字符 ‘C’ 开始逐个输出字符,直到遇到 ‘\0’,则表示该字符串结束,停止输出。
  • 如果“双撇号”中能看见的字符有 n 个,则该字符串在内存中所占的内存空间为 n+1 字节

4.1 字符串所占内存字节数

  1. 双撇号中什么都不写,则只有 ‘\0’ 一个字符,所以只占1字节
  2. "a" 有 1 个可见字符,占 2 字节
  3. "China" 有 5 个可见字符,占 6 字节
  4. "How are you"中,空格也是字符(占一个字节),也算是可见的,所以总共有 11 个可见字符,共占 12 字节
  5. "I love you"共 10 个可见字符,共占 11 字节
  6. "你好",可见4个字节,共占 5 字节

【注意】第6个"你好"为什么占 5 字节?有 2 个可见字符不是应该占3字节吗?C 语言规定,1个英文字符占 1个字节,而 1个中文字符占 2个字节,就算是中文的标点符号也是占 2个字节。所以两个汉字占 4 字节,加上 ‘\0’ 总共是 5 字节。


5. 符号常量

符号常量:用标示符代表一个常量,使用之前必须定义,具有一改全改的优点。

定义符号常量的一般形式

#define 标识符 常量

例如:将PI定义为符号常量

#define  PI 3.14
  • 要区分符号常量和变量是不一样的,符号常量不占内存,只是一个临时符号,代表一个值,在预编译后这个符号就不存在了,故不能对符号常量赋新值。
  • 为与变量名相区别,习惯上符号常量用大写字母表示,如PI(π),PRICE(价格),N(数)等
#include<stdio.h>
#define IP 3.14       //符号常量:在使用之前必须先定义//优点:改一处,即改全部
//从此行开始,以后所有的PI都代表3.14
int main()
{float r,S,V;          //定义3个单精度浮点型变量 r,c,sprintf("请输入圆的半径 r=");scanf("%f",&r);       //输入圆的半径 S=4*IP*r*r; V=4.0/3*IP*r*r*r;printf("\n圆的表面积 S=%.2f\n",S);printf("圆的体积   V=%.2f\n",V);return 0;
}

运行结果…………………………………………


二、变量

变量代表一个有名字、具有特定属性的一个存储单元。他用来存放数据,也就是存放变量的值。在对程序编译连接时有编译系统给每一个变量名分配一个 存储地址

  • 变量名开头必须是字母或下划线,不能是数字。 实际编程中最常用的是以字母开头,而以下划线开头的变量名一般都是系统专用的。
  • 变量名绝对不可以是C语言关键字(C语言关键字一般常用的有32个,在谭浩强写的《C程序设计》中有37个关键字),并且变量不能有空格。
  • 变量名的长度应当符合“min-length && max-information”原则。
  • 大写字母和小写字母是两个不同的字符,sum和SUM不同变量名。
  • 一般而言,变量名用小写字母表示,与人们日常习惯一致,以提高可读性。

变量的数据类型:

1. 常变量

C99允许使用常变量,方法是在定义变量时,前面加一个关键字const

const int a=3;
//定义一个整型变量,指定其值为3,
//而且在变量的存在期间其值不能改变。

常变量具有变量的基本属性:有类型、占储存单元,只是不允许改变其值。常变量具有符号常量的优点,使用更方便。

常变量与符号符号常量区别

在编译后符号常量就不存在了,二常变量需要占用存储单元。

 #define PI 3.1415926          //定义符号常量const float pi=3.1415926      //定义常变量-

注意:有些编译系统还未实现C99的功能,初学者尽量不用,了解即可。但如果当你对C语言更加深入地去学习,常变量其实也是一个比较重要的知识点。


三、标识符

用来对变量、符号常量名、函数、数组、类型、等命名的有效字符序列统称标识符(identifier)。

C语言规定标识符只能由字母数字下画线3种字符组成,且第一个字符必须是字母或下画线

  • 例如:sum ,average , _total , Class , day ,month , Student_name , lotus_1_2_3 , BASIC , li_ling……
  • 不合法标识符:M.D.John ,¥123 , #33 , 3D64 , a>b(不能用标点符号 . ¥ # 等)
  • 标识符可以任意长,但一般只有前32位有效

C语言标识符分为以下三类:

  1. 关键字(32个)auto、break、case、char、const 、continue、default、do、double、else、enum、extern float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while,关键字是C语言中用来表示特殊含义的标识符,由系统提供。关键字有特定的语法意义,不允许用户重新定义,也不能用作变量名或函数名。
  2. 预定义标识符: C语言中预先定义了一些标识符,他们有特定的含义,通常用做固定的库函数中的函数名预编译处理中的专门命令。如scanfprintffabssqrtdefineinclude等。C语言允许用户标识符与预定义标识符同名,但这将使这些标识符失去系统规定的原意。为了避免误解,建议用户为标识符取名时尽量不要与系统预先定义的标准标识符(如标准函数)同名。
  3. 用户标识符:用户标识符是由用户自己定义的标识符,命名时应遵守标识符命名的原则,最好做到见名知义,这样可以提高程序的可读性,一般选用相应的英文单词或拼音字母的形式,如minmaxsumscore(成绩)aver(平均值)row(行)colum(列)total(总数)max_value……

变量的数据类型:

最后推荐系列文章:

  • C语言重要知识点总结【4】:C语言的32个关键字和9种控制语句
  • C语言重要知识点总结【5】:C语言34种运算符优先级及结合性
  • C语言重要知识点总结【6】:C语言的9种控制语句(详解)
  • C语言重要知识点总结【8】:C语言中变量的数据类型

以上内容如有错误,请大家在评论区指正,谢谢支持,共同进步。 加油!!!
如果你感觉我写的内容对你有一定的帮助,请给我点一个 【赞】作为您对我的鼓励, 谢谢!!

C语言重要知识点总结【7】:C语言中的常量、变量、标识符相关推荐

  1. 江苏省计算机二级c语言复习知识点,计算机二级C语言知识点复习

    C语言已先后被移植到大.中.小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序.下面是小编收集的关于计算机二级C语言知识点复习,希望 ...

  2. 【C语言关键知识点1】C语言的预处理、编译和链接过程

    1 引言   再一次回顾C语言的关键基础知识,今天带大家深刻的剖析一下C语言的预处理.编译(汇编)和链接的过程,以加深对C语言及编程本质的理解!   学习C语言首先要理解的就是如何将程序员输入的源代码 ...

  3. c语言如何定义标识符 常量 变量,标识符、常量和变量

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1[单选题] C语言主要是借助以下哪个功能来实现程序模块化 A.定义函数 B.定义常量和外部变量 C.三种基本结构语句 D.丰富的数据类型 参考答案:A ...

  4. c语言程序中变量先引用声明,C语言如何跨文件调用函数定义中声明的变量

    变量的作用域 我们知道,变量根据其作用域有全局变量和局部变量之分.全局变量作用域是整个文件,并且可以使用关键字 extern 达到跨文件调用的目的.但是局部变量值作用于它当前所在的块(即该变量所处最内 ...

  5. c语言可以调用汇编语言吗,C语言与汇编语言混编方式

    C语言是目前非常流行的一种编程语言,除具有高级语言使用方便灵活.数据处理能力强.编程简单等优点外:还可实现汇编语言的大部分功能,如可直接对硬件进行操作.生成的目标代码质量较高等,而汇编语言没有高级语言 ...

  6. c语言获取指针分配的字节数,c语言指针知识点总结(共6篇).docx

    c语言指针知识点总结(共6篇) C语言指针教学中的知识点分析与总结 摘要:分析指针的基本概念及指针在数组.函数.字符串.动态存储分配等方面的应用,提出指针教学过程中易混淆概念及注意事项,对初学者深入理 ...

  7. C语言小知识点练习总结

    最近在准备C语言的上级考试,之前对C接触不多,在练习过程中把一些小知识点记录下来. 1.字符串的截取 利用strncpy函数,传入三个参数,分别为目标字符串,起始位置,长度. 例如将日期字符串转化为数 ...

  8. JavaScript 语言基础知识点图示

    JavaScript 语言基础知识点图示: 转载于:https://www.cnblogs.com/mrxia/p/4059252.html

  9. c语言设计 数组的知识点,C语言程序设计知识点及示例.pdf

    C语言程序设计知识点及示例 四川大学锦江学院 C语言程序设计知识点及示例 知识点1:除了复合语句而外,C语言的语句都以分号结束. 示例1:C语言的简单语句 (非复合语句语句)必须以 结束. 参考答案: ...

  10. 程序设计语言基础-知识点

    程序设计语言基础-知识点 程序设计语言就是人类跟计算机沟通的语言 分类 1.高级低级之分 高级 c/c++,java 等 低级 机器语言 汇编等 2.工作方式之分 编译程序:编译成目标程序后再执行.c ...

最新文章

  1. python一切皆对象的理解_Python中万物皆对象?的理解
  2. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) E. Goods transportation 动态规划
  3. tomcat使用redis存储共享session
  4. 怎样评价推荐系统的结果质量?
  5. Python正则表达式 re.sub()函数:标志位flags与参数个数问题
  6. linux的安全性能,技术|Linux 系统安全性能检查小记
  7. 【算法】赫夫曼编码 解码 实际应用 文件的编码 解码
  8. SSH农产品销售系统设计与实现答辩PPT免费下载
  9. GNN | 从序列神经网络到GCN、GraphSage、GAT图模型总结
  10. CSS 动画指南: 原理和实战 (一)
  11. 2021-2022-1 线性代数知识点总结
  12. dsp2812软件周期耗时测试,基于DSP2812设计的简易数字频率计
  13. Axure获取焦点和触发事件
  14. oracle11g broker,张欣橙Oracle11g配置DGbroker
  15. Unbuntu ./btest : cannot execute binary file: Exec format error解决方案(CSAPP)
  16. 强学习器------随机森林
  17. 在oled屏幕上显示汉字
  18. 预计招收150人,往年有机试,清华计算机系夏令营来袭
  19. 敏捷守破离:20%-200%-1200%的改善
  20. 一二线城市知名 IT 互联网公司名单!虎~

热门文章

  1. 海蜘蛛被搜狗劫持基本完美的解决办法
  2. gaxlxy nexus遭遇不断重启
  3. 分享一个自己利用Python写的淘宝秒杀工具源码
  4. 2014年的那些碎碎念。
  5. 快捷键下面的下划线,如何控制其是否主动显示?
  6. java向各方向移动后输出坐标,数控机床的集合精度包括检验各坐标方向移动的垂直度。...
  7. 实战 SQL Server 2008 数据库误删除数据的恢复(转)
  8. c4dR19材质编辑器语言中文,C4D R19小白成长记(入门篇) 零基础学习Cinema 4d R19中文教程...
  9. 3DsMax—投影效果制作
  10. 利用批处理命令执行.jar文件