变量,数据类型

本文介绍了C语言中的变量命名规则,包括以字母或下划线开头,避免使用关键字,区分大小写,以及驼峰和下划线命名法。同时,文章详细讲解了各种数据类型,如int,char,short,long及其无符号版本,以及它们在不同系统中的内存分配。此外,还讨论了字符类型与ASCII码的关系,浮点数类型(float和double),以及如何使用sizeof获取内存大小和scanf函数进行用户输入。
摘要由CSDN通过智能技术生成

一、变量命名规则

1.不能以数字开头,只能是以字母或者下划线

int 2var;//error
int _2var;//ok
int var;//ok

2.C语言关键字不可以作为变量名称

int return = 1;
int int = 100;

3.大小写敏感

int a;
int A;//a和A是两个变量互不相干

4.命名尽量做到见名知意

int a = 18;//你能知道a变量存储的是年龄信息
int age = 18;//其中存储了年龄信息
int height = 182;

5.命名方式

驼峰命名(windows):

int stuAge = 19;

下划线命名(Linux):

int stu_age = 19;

二、数据类型功能

计算机将来分配内存大小

int val = 520;

int - 计算机会分配4字节内存

数据类型含义

数据范围

char1字节整数-128~127
unsigned char(无符号)1字节整数0~255
short2字节整数-32768~32767
unsigned short(无符号)2字节整数0~65535
long4字节整数-2^31~2^31-1
unsigned long(无符号)4字节整数0~2^32-1
int4字节整数-2^31~2^31-1
unsigned int(无符号)4字节整数0~2^32-1

int和long类型在不同的机器上对应的字节数不同

8位系统32位系统64位系统
int2字节4字节4字节
long4字节4字节8字节

笔试题中,一般认为在32位系统中

int类型 - 4字节

long类型 - 4字节

三、数据类型——字符类型

 数据类型:char / unsigned char

字符类型的名称是char

字符类型包含256个不同的整数,每个整数对应一个字符(例如‘y’,‘%’等)

整数所表示的范围为:-128-127

这些整数和字符之间是可以互相替换的

        每一个字符 - 对应着一个整数

        存储'a' - 存储到内存 - 1字节 - 将字符对应的整数存起来

        ASCII码表里列出所有整数和字符之间的对应关系

  •         'a'        97
  •         'A'        65
  •         '0'        48

当存储一个字符的时候,实际上是将字符对应的数字存储到了内存中

例如存储字符‘a’,实际上是将数字97存储到了内存中

 

ASCII码字符
32空格
33-47!"#$%&'+,-./
48-570123456789
58-64:;<=>?@
65-90ABCDEFGHIJKLMNOPQRSTUVWXYZ
91-96[\]^_`
97-122abcdefghihklmnopqrstuvwxyz
123-126{|}~

定义字符类型变量

char c = 'a'

定义字符类型变量c,分配一个字节,将字符'a'(97)存储到分配好的字节中

输出或者输入占位符:%c / $hhd

%c:让存储区中数据以字符方式输出

%hhd:让存储区中的数据以数字方式输出

补充:几个常见的转义字符

字面值含义字面值含义
'\a'响铃'\"'"
'\b'退格'\\'\
'\t'水平制表'%%'%
'\n'换行
'\v'垂直制表
'\f'换页
'\r'回车
'\'''

四、数据类型-整数类型

(1)短整数类型名称是short - 2字节

这个类型里包含65535个不同的整数,其中一般是非负数另外一半是负数,这些数字以0为中心向两边扩展

(2)长整数类型名称是long - 4字节

这个类型包含2的32次方个不同的整数,其中一半是非负数另外一半是负数。这些数字以0为中心向两边扩展。

(3)整数类型名称是int - 4字节

这个类型里包含2的32次方个不同的整数,其中一半是非负数另外一半是负数。这些数字以0为中心向两边扩展。

以上类型都叫做有符号类型

每个有符号类型都有一个对应的无符号类型

无符号类型的名称是在对应的有符号类型名称前加unsigned关键字(例如unsigned char,unsigned int 等)

无符号类型里包含的数字个数好对应的有符号类型是一样的,但是不包含负数

例如:

int m = 100;

定义一个有符号int类型的变量,本质分配了4字节的内存空间

该4字节内存空间中存储的是数字100

unsigned int m = 100;

定义一个无符号int类型的变量,本质分配了4字节的内存空间

该4字节内存空间中存储的是数字100

unsigned 关键字修饰的变量为非负数

short m = 100;

分配2字节存储区,存储整数100

unsigned short m = 100;

分配2字节存储区,存储整数100

unsigned关键字修饰的变量为非负数 

 五、数据类型——浮点数类型

float f = 1.1;

 定义浮点类型变量f,本质上就是分配一个4字节存储区

将浮点数1.1的相关信息存储到4字节存储区去

double d = 1.1;

 定义双精度浮点类型变量d,本质上就是分配一个8字节存储区

将浮点数1.1的相关信息存储到8字节存储区中去

程序里带小数点的数字默认是双精度浮点类型的6.7

带小数的数字后加字符f表示数字是单精度浮点类型的6.7f

补充:

类型格式化标记符(占位符)
char%c/%hhd1字节
unsigned char%c/%hhu1字节
int%d4字节
unsigned int%u4字节
short%hd2字节(h=half)
unsigned short%hu2字节
long%ld4/8字节(l=long)
unsigned long%lu4/8字节
float %f/%g4字节
double%lf/%lg8字节

六、数据类型——复合数据类型

C语言里可以创建信的数据类型

这些新的数据类型叫做复合数据类型

复合数据类型需要先创建出来然后才能使用

七、sizeof关键字

利用sizeof关键字获取变量或者数据类型对应的内存空间大小

语法格式:

sizeof(变量名 / 数据类型名 / 表达式);

计算内存的大小,以字节为单位

举例:

int a = 1;
printf("%lu,%lu\n",sizeof(a),sizeof(int));
//注意:%lu - sizeof占位符

八、scanf函数

scanf标准函数可以在程序运行的时候从键盘得到用户输入的数字 - scanf format

为了使用这个标准函数需要包含srdio.h头文件

从键盘获取数字后需要存储到内存的存储区中

在scanf函数调用语句里必须使用 [存储区的地址] 表示存储区

                                                        &变量名        数组名        指针

在scanf函数调用语句里需要使用        [占位符]表示存储区的类型

int a = 0;
scanf("%d",&a);

可以在一条scanf函数调用语句里获得多个数字,此时需要多个占位符和多个存储区

占位符的个数和存储区的个数要相等

int a = 0, b = 0;
scanf("%d%d",&a,&b);

如果在scanf函数调用语句的双引号里包含不是占位符的内容则用户在输入的时候必须把这些内容按照原样输入,否则程序就无法获得数字

如果用户输入的内容和程序所要求的内容格式不同程序就无法获得数字

例如:

scanf("%d,%d",&a,&b);

输入:

100,200 + enter

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不背完3500个考研英语词汇不改名

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

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

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

打赏作者

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

抵扣说明:

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

余额充值