目录

变量和常量

常量

字面常量

常变量

标识符常量

枚举常量

字符串常量

变量

局部变量

全局变量

标识符


变量和常量

常量

常量就是一些值不能改变的量。比如我们的性别,身份证号码这些都不能变

字面常量

从字面形式上即可识别的常量叫做字面常量也叫直接常量,字面常量是没有名字的的不变量

整形常量  如1000 ,12345,0 ,-345都是整形常量

​​​实型常量 

两种表示方式

1十进制小数形式,1.234等

2指数形式 12.34e-1表示1.234,可以用E或者e,且e或者E后面必须为整数,e或者E之前必须要有数字

字符常量

1普通字符 用单撇号括起来的一个字符,'a','Z','%'等,单撇号只是界限符,字符常量只能是一个字符,不包括单撇号,在存储单元中是以ASCII代码的方式存储的

2转义字符 除上述的字符常量外,C语言还允许用一种特殊形式的字符常量,就是以字符"\"开头的字符序列,比如换行字符"\n","\t"将输出位置跳到下一个Tab位置(制表位置)

printf("abc\n");//输出abc 并换行 \n表示换行字符
printf("abcn");//输出abcn
printf("abc\tn");输出abc    n    \t表示水平制表符,将光标放到下一个Tab处
printf("c:\\test\32\\test.c");//c:\test\32\test.c  \\表示反斜线字符\
printf("c:\test\32\test.c");//c:      est    est.c
printf("%d\n", strlen("c:\test\32\test.c"));//输出是13  \ooo o表示一个一个八进制字符
printf("%c\n", '\'');//输出是'   \'表示'
printf("%s\n", "\"");// 输出是"   \"表示"
printf("%c",'\x61'); //输出是是a   \xdd
//d表示一个16进制字符 然后对应16进制对应ASCII码对应的字符

\ooo 一个o表示一个8进制的数据,然后这个转移字符与该8进制对于的ASCII码的字符对应

 ??+一个字符会形成一个三字母词 比如??)会变成] 在早期的c语言会这样,现在的编译器不一定支持

常变量

用const 修饰的常变量

const int num = 4;printf("%d\n", num);//num = 8; 报错printf("%d\n", num);

一旦这个变量被赋值,而且在变量存在期间就不能再改变;

const int num = 4;int arr[num] = { 0 };//报错

因为本质num还是一个变量,只是被const修饰成一个常变量

常变量与常量的异同  常变量是具有变量的基本属性,有类型,只占存储单元,只是不允许改变其值,可以说常变量就是有名字的不变量,而常量是没有名字的不变量

常变量和符号变量的区别 

在程序中两者都能使用,但是两者性质不同,符号变量是预编译指令,它只是用符号常量代表一个字符串,在预编译时候仅进行字符替换,在预编译后,符号常量就不存在了,而常变量要占用存储单元,有变量值,只是该值不改变而已,更加方便

标识符常量

在全局用#define定义的标识符常量

#include<stdio.h>
#define MAX 10//注意后面没有;
int main()
{int arr1[MAX] = { 0 };//定义数组没有问题 说明不是变量 是一个常量printf("%d\n", MAX);//输出为10return 0;
}

经过这样的指定以后,本文将中从此之后所有的MAX都代表10,在对程序进行编译前,预处理器先对MAX进行处理,把所有的MAX全部置换成10,这样也称符号常量

好处

1含义清楚,可以通过MAX知道表达的意思是最大值

2在需要改变程序多处使用同一个常量时,可以做到一改全改

注意点 不要把符号常量当作为变量,符号常量不占内存,只是一个临时符号,代表一个值,在预编译之后这个符号就不存在了,故不能对符号常量赋予新值

枚举常量

什么是枚举 枚举就是一一列举,

比如性别 男 女 三原色 红黄 蓝,这些都是能被一一列举

枚举关键字 enum

#include<stdio.h>
enum SEX //定义性别这个可以被一一列举的范围
{MALE,//男FEMALE,//女};
int main()
{enum SEX S = MALE;printf("%d\n", MALE);//0printf("%d\n", FEMALE);//1return 0;
}

字符串常量

用双引号引起的一串字符 “ ”;如"BOY","123",用双撇号把若干个字符括起来,字符串常量是双撇号中的全部字符,

注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串 内容。

char arrs[]="abc";//用char数组存放字符串printf("%s\n", arrs);//打印的是abcchar arrs1[] = { 'a','b','c' };printf("%s\n", arrs1);//abc烫烫烫烫蘟bc
char arrs[]="abc";//用char数组存放字符串//"abc"---'a','b','c','\0' ,'\0'表示字符的结束标志printf("%s\n", arrs);//打印的是abcchar arrs1[] = { 'a','b','c',0 };//'\0'的数值就是0printf("%s\n", arrs1);//abc

’/0’这个是表示字符的结束标志,在字符串这个数据中自动包含这个结束标志

#include<stdio.h>
#include<string.h>
int main()
{char arrs[]="abc";//用char数组存放字符串char arrs1[] = { 'a','b','c' };printf("%d\n", strlen(arrs));//打印3printf("%d\n", strlen(arrs1));//打印15return 0;
}

为什么打印15.这个是随机的,随机找到了一个结束符,所以应该填随机值

变量

一般变量的初始化不是在编译阶段完成的(只有在静态存储变量和外部变量的初始化在编译阶段完成),而在程序运行执行本函数时赋予初值的,相当于执行一个赋值语句。

变量代表一个有名字,具有特定属性的一个存储单元,它用来存放数据,也用来存放变量的值,在程序的运行期间,变量的值可以改变

定义变量 类型+变量名    而且变量必须先定义,后使用

定义变量有三种方式

1在函数开头定义

2在函数的内部定义

3在函数的外头定义

int a=3;//a是变量名,3是变量值
char b;
double c;
long d;
float e=3.14f;
short f;

 变量名实际是以一个名字代表一个存储地址,在对程序编译链接时,编译系统给每一个变量名分配相应的内存地址,从变量中取值,相当于通过变量名找到相应的内存地址,从存储单元中读取数据

局部变量

在一个函数的内部定义的变量只能在本函数的内部有效,在复合语句内定义的变量只在本复合语句范围内有效,只能在本复合语句内才能引用它们,以上情况叫做局部变量

#include <stdio.h>
int global = 2019;//全局变量
int main()
{int local = 2018;//局部变量//下面定义的global会不会有问题?int global = 2020;//局部变量printf("global = %d\n", global);//输出的数据是2020return 0;
}

建议全局变量和局部变量的名字不要相同,容易产生误会,从而导致bug

当全局变量和局部变量的名字相同时,局部变量优先

生命周期 进入作用域生命周期开始,出作用域生命周期结束

全局变量

程序的编译单位是源程序文件,一个源文件可以包含一个或者若干个函数,在函数外定义的变量叫做外部变量,也称全局变量,这个global就是全局变量

全局变量的作用域是整个工程

extern int num3;//声明这个全局变量printf("%d\n", num3);//未声明的标识符

生命周期 整个程序的生命周期

标识符

在计算机高级语言中,对于变量,符号常量名,函数,数字,类型等命名的有效字符列统称为标识符。

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

比如 sum ,_total,student_1,等

C语言变量常量和标识符相关推荐

  1. C语言变量常量,基本数据类型及数据类型转换详讲

    文章目录 :star: 变量常量与基本数据类型及数据类型转换 1.数据在内存中的存储(二进制形式存储) 2.基本数据类型简介 2.1 C语言数据类型参考 2.2 为什么需要数据类型 3.整型 3.1 ...

  2. 【Java从入门到头秃专栏 】(二) 注释 数据类型 变量 常量 关键字 标识符 运算符 输入输出

    目录 1 注释 2 数据类型 3 变量与常量 4 关键字.标识符 5 运算符 6 键入值.输出值 1 注释 注释就是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便大家更加容易理解程序. ...

  3. c程序语言的常量变量和标识符,浅谈C语言中的常量与变量.pdf

    课程教育研究 CourseEducationResearch 2014年4月 上旬刊 教学.信息 浅谈C语言中的常量与变量 刘 星 (青 岛工学院商学院 山东 青岛 266300) [摘要]在任何一种 ...

  4. java的注释、关键字、标识符、变量常量、数据类型、运算符、流程控制等

    java的注释.关键字.标识符.变量常量.                             数据类型.运算符.流程控制等 1. java概述 1.1 java的技术体系 Java SE:是Ja ...

  5. c语言浮点型常量表示平均数_数据类型与常量、变量解析

    C语言入门参考-第五章-数据类型与常量.变量 常量即为在程序运行过程中值不会改变的量,常量又有字面常量与符号常量之分.符号常量使用#define预处理器指令与const关键字定义,(#define符号 ...

  6. C++_变量/常量/标识符命名规则

    一.变量存在的意义:方便我们管理内存空间. 变量创建的语法:数据类型 变量名 = 初始值; #define _CRT_SECURE_NO_WARNINGS 1#include <iostream ...

  7. C语言初级:Hello world、数据类型、变量常量、字符串、转义字符、注释、选择语句、循环语句

    一.C语言介绍 C语言是一门通用计算机编程语言,广泛应用于底层开发.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管C ...

  8. 3.Go语言变量与常量

    Go语言变量与常量 基本结构说明 标识符 关键字 常量 iota 变量 1)为什么有变量 2)变量的类型 3)变量声明 4)标准声明 5)基本数据类型 整型 浮点型 复数 布尔型 字符串 类型转换 基 ...

  9. JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

    JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...

最新文章

  1. Python 之 matplotlib (十四)图中图
  2. 达尔文流媒体服务器(Darwin Streaming Server)(DSS)并发性能测试报告
  3. Django上传文件及分页
  4. 大数据可视化方法有哪些
  5. ias日志察看器(.net)
  6. Diagnostics: File file:/tmp/spark-***/__spark_libs__***.zip does not exist
  7. Tomcat8.0进入tomcat manager的方法
  8. 简单java游戏代码_Java经典小游戏——贪吃蛇简单实现(附源码)
  9. CentOS7.6重装系统步骤
  10. 十月英语——坚持的力量
  11. Dapp测评 | Dpark冠军团队原班人马全新力作:Monster Tamer怪兽大战,一触即发
  12. 解決Ubuntu下搜狗输入法出现无法输入中文的问题
  13. 今日头条搜索排名seo怎么做?今天头条网站优化规则揭秘!
  14. DDR3 SPEC
  15. 视区单位vw, vh简介以及可实际应用场景
  16. 网络安全(刘建伟/毛剑版本)重点整理/复试/期末
  17. 出土文物惊现WiFi信号:WiFi的影响
  18. 屏幕距离和坐便转换工具_投影幕尺寸计算、投影距离计算、观影距离计算
  19. 家庭理财期末考试试卷计算机,计算机科学与技术 家庭理财管理信息系统本科学位论文.doc...
  20. 360周鸿祎:没有人比我更懂互联网安全

热门文章

  1. int, long int, long long int, _int64範圍
  2. 11套宝藏特效视频素材大约263GB 免费分享
  3. gradient checking
  4. 黑群晖6.1安装出现错误:38的解决办法
  5. 【数据分析与可视化】使用pyecharts对App下载量数据进行可视化分析(附源码)
  6. 项目支付接入支付宝【沙箱环境】
  7. Field-Oriented Control (FOC) 矢量控制 磁场定向控制
  8. 英17岁少年开发应用获百万美元投资
  9. 计算机ipad手机组成,如何为自适应手机,计算机和iPad制作网页的摘要
  10. 【两所广东211】成立人工智能学院