初学c语言数据类型——变量

变量的概念

             C语言中的变量是指在程序运行时其值可以改变的量,变量的功能就是存储数据。(x或者y)变量是一段实际连续存储空间的别名,程序中通过变量来申请并命名存储空间,通过变量的名字可以使用存储空间(变量名就是内存单元的地址)。

变量的命名

             1.变量名只能是字母(A-Z,a-z)、数字(0-9)或下划线。

             2.第一个字母不能是数字。

             3.不能是c++关键字,要见名知义比如sum是求和

变量的定义

             定义变量的格式:类型 变量名 。比如int  x:int  y这是把x和y定义成整型变量 

整型变量

             整型变量是一种计算机语言。在c语言中,整型变量的值可以是十进制,八进制,十六进制,但在内存中存储着是二进制数。变量顾名思义是数值可以变的量,整型变量表示的是整数类型的数据。

           整型变量的分类

             整型变量分为基本整形(用int定义),短整型(short或short  int定义),长整型(long或long  int定义),无符号型。

无符号类型就是与其他类型连用,不写默认有符号类型,写了可以扩大数的范围(下面取值范围有讲),有符号的申请时前面加上signed(可以省略比如signed  int  x),无符号的加上unsigned。

             (1)无符号基本型 类型说明符为unsigned int或unsigned。

             (2)无符号短整型 类型说明符为unsigned short

             (3)无符号长整型 类型说明符为unsigned long 

 【例1】整型变量的定义与使用

#include<stdio.h>
int main(){
	int x,y,z;
	unsigned int u;
	x=1;
	y=2;
	u=3;
	z=x+y+u;
	printf("z=%d",z);
	return 0;
} 

 不同类型的可以运算

            整型变量的取值范围   

             在32位操作系统中,int如果占4个字节的话,算上首部的正负号他的取值范围2^-31~2^31-1(变量的那篇关于整形数据的存储有讲到),如果要扩大数值,要把存放正负号的位置也存放数字这样的范围是0~2^32-1。

           整形数据的溢出 

            当前编译器为int类型数据分配了4个字节(对应32比特位),所以有符号int类型变量a和b的取值范围是-2147483648到2147483647,所以当a取值2147483647,再加1时,就会出现“溢出”的情况,其结果b发生了反转,变成了-2147483648。

a: 0111 1111 1111 1111 1111 1111 1111 1111 (共32位)

b: 1000 0000 0000 0000 0000 0000 0000 0000 (共32位)

a和b最前面的1表示的是正负号。

#include<stdio.h>
int main(){
	int x,y;
	x=2147483647;
	y=x+1;
	printf("y=%d",y);
	return 0;
} 

         实型变量 

             在程序运行过程中可以改变其值的实型量被称为实型变量,

           实型变量的分类   

            在程序运行过程中可以改变其值的实型量被称为实型变量,实型变量根据数值的范围可分为单精度(float)(小数点后可以保留6位),双精度(double)(小数点后可以保留15位)

          实型变量的定义和使用

【例2】实型变量的定义与使用

#include<stdio.h>
int main(){
	float x,y;
	double a,b;
	x=1.23;
	a=-2.36;
	y=x+a;
	b=x+a;
	printf("y=%f,b=%f",y,b);
	return 0;
} 

 可以看出单精度和双精度可以一起运算,结果是六位小数与%f有关,后边的章节我们会学到。

           实型数据的精度与舍入误差

             float和double的范围都是有限的float是1.2*10^-38~3.4*10^38,double是2.3*10^-308~1.7*10^308,当数据超出这个值,超出的部分就会丢失,会产生一定的误差。

【例3】

#include<stdio.h>
int main(){
	float x;
	double a;
	x=123456789.123;
	a=123456789123456729.123;
	printf("x=%f,a=%f",x,a);
	return 0;
} 

             由例题知float前七位是精确的,后两位是随机的,超出的小数部分丢失。double前16位是精确的,后边的是随机的,小数部分丢失。

          字符型变量

             字符变量及其使用

              字符变量是用来存放字符常量的,一个字符变量中只能存放一个字符。 字符变量的定义形式如右:char x1,x2; 定义了两个字符型变量。可以使用赋值语句对变量x1和x2赋值,如:x1='x’;x2='y'; 字符型数据(常量和变量)在内存中占一个字节的空间。

#include<stdio.h>
int main(){
	char x,y;
	x='a';
	y='b';
	printf("%c,%c",x,y);
	return 0;
} 

%c后边会学她是输出字符的

            字符变量在内存中的存储形式

              字符在内存中是以ascII来存的,利用ASCII表把字符转换成数字,再把数字转换成补码存储在内存中

 

  • 9
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值