C语言复习(四)——变量、常量、标识符

4.变量,常量 ,标识符

变量是以某标识符为名字,其数值可以改变(可读,可写)。{可读(获取,可取值),可写(赋值)}
常量其值不可改变(只可读,不可写)。

什么是声明,什么是定义?

什么是定义:所谓的定义就是为这个变量分配一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名。但注意,这个名字一旦和这块内存匹配起来,它们就同生共死,终生不离不弃,并且这块内存的位置也不能被改变。一个变量在一定的区域内(比如函数内,全局等)只能被定义一次,如果定义多次,编译器会提示你重复定义同一个变量或对象。

什么是声明:有两重含义,如下:
第一重含义:告诉编译器,这个名字已经匹配到一块内存上了。
第二重含义:告诉编译器,我这个名字我先预定了,别的地方再也不能用它来作为变量名。

记住,定义和声明最重要的区别:定义创建了对象并为这个对象一块内存,而声明的时候是没有分配内存空间的。

4.1 变量

1.局部变量:在函数中定义的变量。

2.全局变量:在函数外定义的变量。

#include<stdio.h>
int g_sum = 100; // 全局变量
int main()
{
float ft = 12.23f; // 局部变量
int a = 10;
int g_sum = 0; // 局部变量和全局变量同名
a = g_sum; //? 10 ,0
return 0;
 }

4.2 常量

C 语言的常量分为

1. 字面常量
2. 用#define 定义的宏常量
3. 用 const 关键字修饰的变量,称为常变量
4. 枚举常量
5. 字符常量和字符串常量

#include<stdio.h>
#include<stdlib.h>
// 宏常量
#define PI 3.14

// 枚举常量
enum week{ Mon = 1, Tues = 2, Wed = 3, Thurs = 4, Fri = 5, Sat = 6, Sun = 7 };

int main()
{
//常变量
const float r = 10.25f;
 r = 0;// ?--《《报错,常变量无法被修改
 //变量
 float s = 0.0;
 const int a = 100;
 enum week w = Mon;
 s = r * r * PI;
 return 0;
 }

注:

为什么define定义时不用加分号,因为其实define定义的宏常量在预编译是会被直接替换为变量名后边的值,如果加上分号,就会导致计算可能出现错误。
const修饰的常变量在定义时一定要初始化
枚举变量的值只能选定义好的内容。

字符常量和字符串常量

在这里插入图片描述
转义字符以反斜线""开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,
故称“转义”字符。
使用转义字符时需要注意下问题:

1)转义字符只能使用小写字母,否则转义字符被忽略;如’\N’➔ ‘N’。

2)\v 垂直制表和\f换页符对屏幕没有任何影响,只会影响打印机执行响应操作。
3)\t 光标向前移动四格或八格编译器里设置
4’字符里(即单引号里)使用字符串里(即双引号里)需要只要用 ’ 即可
5)? 其实就是 (没有转义字符也一样,在 vs2012 测试过)

注意 转义字符的第二种意思!!!!
在这里插入图片描述
总结:

转义字符既可以用于单个字符,也可以用于字符串,并且一个字符串中可以同时使用八进制形式和十六进制形式。 转义字符的初衷是用于 ASCII 编码,所以它的取值范围有限:
1.八进制形式的转义字符最多后跟三个数字,也即\ddd 最大取值是\177
2.十六进制形式的转义字符最多后跟两个数字,也即\xdd 最大取值是 \x7f 单引号、双引号、反斜杠是特殊的字符,不能直接表示:
1.单引号是字符类型的开头和结尾,要使用\’ 也即’\’’
2.双引号是字符串的开头和结尾,要使用\”表示,也即 ”abc\”123\”tulun”
3.反斜杠是转义字符的开头,要使用 \表示,也即’\’或者“tulun\1024”

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋到亦天凉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值