7 数据的表现形式——变量

7 数据的表现形式——变量

变量:在程序运行期间,变量的值是可以改变的。
变量的本质实际就是一块存储空间;

注意:

  1. 变量必须先定义,后使用;
  2. 定义变量时指定变量的名字和类型。

变量的命名:

简单地说,标识符就是一个对象的名字。

C的标识符有三种:

  1. 保留字(关键字):指一些特定的单词,留作他用(比如int、float、if等);
  2. 预定义标识符:预先定义的库函数名,预定义命令等(比如sin(库函数),define(预定义命令));
  3. 用户标识符:用户给对象起的名字。

C语言规定标识符只能由字母、数字、下划线三种字符组成,且第一个字符不能为数字;
例如:以下为合法的标识符:

sum、_total、Class、li_fy、hanyh_

以下不是合法的标识符:

M.D.john、¥529、#hyh、7D24、H>l

注意:用户标识符不得使用保留字( 关键字),可以使用预定义标识符(最好不用,以免引起混淆)。

整型变量:
例如:定义一个整型变量,并赋值;

int i;
i=10;

整型变量的分类:

1、基本型;类型说明符为 int ,占4个字节;
2、短整型:类型说明符为short intshort,占2个字节;
3、长整型:类型说明符为long intlong,占4个字节;
4、无符号型:类型说明符为unsigned

无符号型又可以分为3种类型:

无符号基本型:unsigned intunsigned;占4个字节;
无符号短整型:unsigned short;占2个字节;
无符号长整型:unsigned long;占4个字节;

各类整型量所分配的内存字节及数的表示范围:
在这里插入图片描述

整型变量的定义:
一般形式:

类型说明符  变量名标识符,变量名标识符……

例如:

int a,b,c;		//a,b,c被定义为整型变量;
long x;			//x被定义为长整型变量;
unsigned o,p;	//o,p被定义为无符号基本整型变量;

注意:

  1. 在一个类型说明符后面可以定义多个相同类型的变量。各变量名之间要用逗号间隔,类型说明符与变量名之间至少用一个空格间隔;
  2. 最后一个变量名之后必须以分号“;”结尾;
  3. 变量定义必须放在使用这个变量之前,放在函数体的开头部分。

例如:
定义x,p,i为短整型变量,p+i赋值给x,求x;

#include <stdio.h>
int main()
{
	short x,p,i;
	p=5;
	i=29;
	x=p+i;
	printf("x=%hd\n",x);
	return 0;
}

程序分析:
在这里插入图片描述
例题:整型数据的溢出。
在这里插入图片描述
编译、连接、执行:
在这里插入图片描述
程序分析:

该题目是整型数据的溢出问题。
1、短整型(short int)的表示范围为 -32768~327672、a,b均为被定义为短整型变量,a=32767,b=a+13、按道理来说输出b应为32768,但是32768超出了短整型的表示范围;
4、则b为 -32768

实型变量:
分类:

  1. 单精度型(float),占4个字节;数值范围3.4e-38~3.4e+38,只能提供7~8位有效数字;
  2. 双精度型(double),占8个字节,数值范围1.7e-308~1.7E+308,可提供16位有效数字;
  3. 长双精度型(long double)

注意:

#include <stdio.h>
int main()
{
	float a,b,c,d;
	a=1/3;
	b=1.0/3;
	c=1.0/3.0;
	d=1.0/3*3;
	printf("%f\n%f\n%f\n%f\n",a,b,c,d);
	return 0;
}

编译连接执行;
在这里插入图片描述

字符变量:
字符变量用来存储字符常量,即单个字符;
说明符为char;
例如:

char a,b;
char c = ‘?’; //注意这里系统会把“?”的ASCII值63赋给变量c;

例题:编写C程序,实现大小写字母转换;
源代码:

#include <stdio.h>
int main()
{
	char a='x',b='Y';	//定义x,Y为字符变量;
	a=a-32;		//小写转大写-32;
	b=b+32;		//大写转小写+32;
	printf("x:%c\nY:%c\n",a,b);	
	/*%c字符型输出,输出一个字符;
	注意输出表列是a,b,不是x,Y;
	*/
	return 0;
}

编译连接执行:
在这里插入图片描述
程序分析:

  1. 参照附录表可知某个小写字母与对应的大写字母相差32;
  2. 例如:A 在ASCII码表中,对应的值是65; a 对应的值是97;
  3. 小写字母转成大写字母就-32;
  4. 大写字母转成小写字母就+32。
  5. 最后输出的时候以%c字符型输出输出一个字符。

注意:
1、字符变量不能被定义两次;例如:

char ch = 'A';
char ch = 'B';
这样定义会报错,因为ch被定义了两次

2、在输出字符变量的值时,可以以十进制%d形式输出,可以以字符形式%c输出;例如:

char c = '?'printf("%d %c\n",c,c);

输出结果为:

63 ?
说明:用%d格式输出十进制整数63,用%c格式输出字符‘?’。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

野马菲比

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

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

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

打赏作者

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

抵扣说明:

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

余额充值