网站首页 > 技术文章 正文
经过前面我们的学习,我想大家已经能编写一个具有最基本的增加、删除、查找、修改、保存等功能的信息管理程序。
今天讲一些C语言的基本概念:数据类型。
C语言的数据类型分为4种:
1、基本数据类型:
包括:整型、实型、字符型。
2、构造数据类型:
包括:数组、结构体。
3、指针类型
4、空类型。
其中用得多的是基本数据类型和构造数据类型,那么,这两种数据类型有什么不同呢?
还是用买房来打比方:基本数据类型就是定义一个变量就买一间房,也就是一间房住一个人(一个变量)。
比如:int a; float x;
a买了一间房,房间大小是int,房间里一次只能住一个整数。
x买了一间房,房间大小是float,房间里一次只能住一个实数。
而构造类型是定义一个变量,但是给了这个变量不止一间房。
比如定义一个数组变量:
int a[10];
a是数组类型的变量,虽然只定义了一个变量 a,但是它买了10间房,房间大小一样都是int型,每个房间可以住一个整数。
又比如定义一个结构类型变量:
struct STU
{ int xh; //学号
char *name[20]; //姓名
float cj; //成绩
};
struct STU s;
虽然只定义了一个变量s,但它买了3间房,一间房住整数,一间房住字符串(这件房又分为了20个小房,每个小房住一个字符,合起来就是一个字符串),还有一间房住实数。
1、整型
整型其实不止有int一种,一共有6种整型。
其中有符号的整型有3种:
基本整型(int)
短整型(short int或者只写short)
长整型(long int或者只写long)
无符号的整型也是3种:
无符号基本整型(unsigned int或者只写unsigned)
无符号短整型(unsigned short int或者只写unsigned short)
无符号长整型(unsigned long int或者只写unsigned long)
现在又出现了长长整型:long long int。
各种整型的取值范围不一样:
2、实型(也叫浮点型)
分为单精度实型(float)和双精度实型(double)。
两种实型的精度和取值范围不一样。
数据精度 与 取值范围是两个不同的概念:
3、字符型(char)
字符型在电脑里全部是以ASCII码的形式存放。
ASCII是一套基于拉丁字母的字符编码,共收录了 128 个字符,用一个字节就可以存储,它等同于国际标准 ISO/IEC 646。
ASCII 编码于 1967 年第一次发布,最后一次更新是在 1986 年,迄今为止共收录了 128 个字符,包含了基本的拉丁字母(英文字母)、阿拉伯数字(也就是 1234567890)、标点符号(,.!等)、特殊符号(@#$%^&等)以及一些具有控制功能的字符(往往不会显示出来)。
以上说的是标准 ASCII 编码,是学习编程语言必须了解的。
标准 ASCII 编码用一个字节中的 7 位就能存储,为了让第 8 位(最高位)也参与编码,就形成了扩展 ASCII 编码。
扩展 ASCII 主要包含了一些特殊符号、外来语字母和图形符号。
针对扩展的 ASCII 编码,不同的国家有不同的字符集,所以它并不是国际标准,感兴趣的朋友可上网自行查找。
大写字母A的ASCII码为65,B的ASCII码为66,以此类推,Z的ACSII码为90。
小写字母a的ASCII码为97,b的ASCII码为98,以此类推,z的ASCII码为122。
小写字母的ASCII码比对应的大写字母的ASCII码大32。
经常用这个关系来判断用户输入的是大写字母还是小写字母或其中字符。
例:输入一个字符,若它是大写字母则变成对应的小写字母输出,若它是小写字母则变成对应的大写字母输出,若它是其他字符则原样输出。
程序1:
程序中出现一个运算符:&&,这是一个逻辑运算符,它的意思是“而且”。
逻辑运算符共有3种:
逻辑非,运算符为!,“否定”的意思;
逻辑与,运算符为&&,“而且”的意思;
逻辑或,运算符为||,“或者”的意思。
若运行时输入大写字母时输出的是小写字母,如图:
若运行时输入小写字母时输出的是大写字母,如图:
若运行时输入的既不是大写字母也不是小写字母则原样输出,如图:
例:输入一串字符,以#结束,统计其中的大写字母个数、小写字母个数、数字字符个数和其他字符个数。
程序2:
运行结果:
在C语言里,整型变量和字符变量的定义和赋值是可以互换的:
什么意思呢?就是说如果有一个字符为大写字母A,那么它在电脑里的存放形式不是字母A,而是ASCII编码65,那么在电脑里用65(二进制形式为01000001)存放字母A。
当这个A以%c的形式输出时,输出的是大写字母A;而如果以%d的形式输出时。输出的是整数65(即A的ASCII编码)。
我们来看一个程序。
程序2:
运行结果:
我们可以看到字符型其实可以像整型一样做算术运算,也就是说,在C语言里,字符其实可以当作整型一样使用。
字符A加1就变成字符B,因为B的ASCII码比A的ASCII码大1。
4、总结
今天介绍了基本数据类型,总结如下:
猜你喜欢
- 2025-09-06 特气系统设计工程中常用的中英文对照表
- 2025-09-06 大数据_Flink_Java版_数据处理_Watermark(7)在代码中的设置
- 2025-09-06 第三篇:数据类型——1基本数据类型
- 2025-09-06 Java语言基础(一)-java主类结构_java的主类结构
- 2025-09-06 @程序员,你真的了解内存吗?_程序员内存重要还是cpu重要
- 2025-09-06 【C语言·003】基本数据类型的字节表示与取值范围边界
- 2025-09-06 如何选择自己喜欢的颜色,这个VBA颜色选择器一定要学会
- 2025-09-06 Spring Boot3 中解决返回接口 Long 类型数据精度损失问题全解析
- 2025-06-24 C语言的数据类型(c语言的数据类型说明保留字)
- 2025-06-24 java语言怎么学习?(java语言入门知识)
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)