数据类型及其运算(二)

常数

不能改变的值——常量

整形常量

整数常量可以是十进制、八进制或十六进制的常量。
前缀:0x 或 0X 表示十六进制,0 表示八进制,不带前缀默认表示十进制。
在整数的末尾 + L / l 代表长整型,在末尾 + U / u代表无符号

数字类型
85十进制
0213八进制
0x4b十六进制
30整数
30u无符号数整数
30l长整数
30ul无符号长整数

浮点常量

由整数部分,小数点,小数部分和指数部分组成。
小数形式表示:包含整数部分、小数部分或同时包含

例如:
123.456,0.6,-36.2,12.0

指数形式表示:包含小数点、指数或同时包含

例如:
12.32e3,-125.3e2,0.45E5

e或E之前必须有数字,且e或E之后必须为整数

字符常量

字符常量存储在计算机存储单元中时,并不是存储字符本身,而是以ASCII代码形式存储
普通字符:用单引号括起来的一个字符 ‘a’ , ‘A’
ASCII代码重点背会

字符ASCII值
0~948~57
A~Z65~90
a~z97~122

转义字符:在屏幕上无法显示的控制字符
在这里插入图片描述
例如:

//程序输出什么?
#include <stdio.h>
int main()
{
	printf("%d\n", strlen("abcdef"));
	// \62被解析成一个转义字符
	printf("%d\n", strlen("c:\test\628\test.c"));
	return 0;
}

结果为:
6
14

分析:

  1. “abcdef”共有6个字符,strlen是检测字符的长度函数,故打印出6
  2. “c:\test\628\test.c”中,\t为水平制表符,\62为八进制,皆为一个字符,故共有14个字符

字符串常量

用双引号把多个字符括起来。例如:“Beijing”
字符串常量在内存中以\0 结尾。

例如:
char p1[] = “Hello, world!”; ——系统对字符串常量自动加一个 ‘\0’

'\0’或‘\000’是代表ASCII码为0的控制字符,即“空操作”字符

符号常量

用#define指令,指定用一个符号名称代表一个常量

例如:
#define PI 3.1415
在对程序进行编译前,PI=3.1415,在之后的编译过程中可以用PI代表常量3.1415

注意:用此命令,行末没有分号

符号常量不占内存,只是一个临时符号,代表一个值,在预编译后这个符号就不存在了,不能赋予新值

变量

可以改变的值——变量
变量:有名字,具有特定属性的一个存储单元,用来存放数据

变量必须先定义后使用

例如:
int a = 3;——初始化
int为变量类型,a为变量名,3为变量值
int a;
a=3;——不是初始化

变量名实际上是以一个名字代表一个存储地址
从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据

整型变量

变量值在存储单元中都是以补码形式存储的
为了充分利用变量值的范围,在类型符号前面加上unsigned表示为无符号整数类型,在类型符号前面加上signed或者什么都不加表示为有符号类型

  • 只有整型(包括字符型)数据可以加signed或unsigned修饰符,浮点类型不能加。
  • 对无符号整型数据用“%u”格式输出。%u表示用无符号十进制数的格式输出

例如:
unsigned int a = 50;
printf(“%u\n”, a);

  • 不可以将一个变量定义为无符号整型后,向他赋予一个负值

字符变量

用类型符char定义

#include<stdio.h>
int main()
{
	char c = '?';
	printf("%d %c\n", c, c);
	return 0;
}

结果:63 ?
定义c为字符型变量并使初始值为字符 ‘?’
‘?’ 的ASCII代码为63,系统把63赋给c
%d——输出十进制整数,%c ——输出字符

变量的作用域和生命周期

作用域

  1. 局部变量的作用域是变量所在的局部范围。
  2. 全局变量的作用域是整个工程。

生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

  1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  2. 全局变量的生命周期是:整个程序的生命周期。

常变量

在定义变量时,前面加上关键字const
const 声明常量要在一个语句内完成

例如:
const int a = 3;
定义a为整型变量,初始值为3,且在变量存在期间值不可以改变

常变量具有变量的属性:类型,占存储单元

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值