本文主要讲解c语言的基础部分,常见的c语言基础数据类型,这个也非常重要。
参考书目和推荐学习书目:通过网盘分享的文件:C语言程序设计电子教材 (1).pdf
链接: https://pan.baidu.com/s/1JFqSaCKZ0A2Lr944e72NUA?pwd=p648 提取码: p648
目录
前言
在 C 语言中,数据类型是构建程序的基础,它们决定了变量可以存储的信息种类以及这些信息在内存中的存储方式。讲解数据类型的前言可以这样描述:
在编程的世界中,数据类型是构建逻辑和表达现实世界的基石。C 语言作为一门功能强大且效率极高的编程语言,提供了丰富的数据类型,以满足不同场景下的编程需求。了解并熟练掌握 C 语言的数据类型,对于编写结构清晰、性能优良的程序至关重要。每种数据类型都有其特定的用途和存储限制,这不仅关系到程序的正确性和健壮性,还直接影响到程序的运行效率。在本教程中,我们将深入探讨 C 语言的基本数据类型,如整型、浮点型、字符型等,以及它们在内存中的表示和操作方式。此外,我们还将介绍如何通过指针和数组等复合数据类型来管理更复杂的数据结构。通过学习这些内容,你将能够更好地理解 C 语言的工作原理,并有效地利用这些工具构建强大的应用程序。
这段前言为读者提供了数据类型在 C 语言中的重要性,并简要介绍了即将讨论的主题,为深入学习 C 语言的数据类型做好了铺垫。
由于本章较为简单,任何类型的题目都有涉及,所以此节没有习题分享。
一.常量与变量
计算机要处理的数字、文字、符号、图形、音频、视频等数据是以二进制的形式存放在 内存中的。我们将 8 个比特(即二进制中的位)称为一个字节(Byte),并将字节作为最小的 可操作单元。
1.常量
常量(constant)是在程序设计过程中已知的、在程序中直接写出的数值。在程序运行过 程中,常量的值不能被改变。在 C 语言中常量可分为直接常量和符号常量两种表现形式。
直接用值表示的常量为直接常量,如 15、15.2、‘a’、“abc”等。用标识符(后面会详细 介绍)表示的常量为符号常量,其一般形式为:
#define 标识符 常量值
#define PI 3.1416
2.变量
在现实生活中,为了避免物品显得凌乱,并且方便以后拿取,我们会找一个储物柜来存 放物品,计算机也是这个道理,我们需要先在内存中分配一块区域,规定用它来存放整数, 并起一个好记的名字(标识符),方便以后查找。这块区域就是整数“储物柜”。
C 语言在内存中分配区域的方法为:
int a;
int 是 integer(整数)的简写,a 是为内存中找到的“储物柜”起的名字,也可以叫其他 名字,如 age、number 等。例:
int a=6;
a=78;
a=789;
通过不断的给a赋值,最终a=789;
因此这种值可以改变的量被称为变量。
二.标识符
在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如变量名、函数名 等,这些符号被称为标识符。标识符可以由任意顺序的大小写字母、数字、下划线组成,加 username、username123、user_name、_username。标识符不能以数字开头,也不能是 C 语言 中的关键字,如 123username、98.3、Hello World、-username 是非法的标识符。
在使用标识符时还必须注意以下几点:
(1)C 语言严格区分大小写,如 num 和 NUM 是两个不同的标识符。
(2)C 语言虽然不限制标识符的长度,但是受到编译器和操作系统的限制。例如在某个 编译器中规定标识符前 128 位有效,当两个标识符的前 128 位相同时,则被认为是同一个标 识符。
(3)常量名所有字母都大写,单词之间用下划线连接,如 DAY_OF_MONTH。
三.数据类型
我们有很多种方式来解释内存中存储的数据,使用之前必须要确定。上面的 int a;说明 这个数据是一个整数,不能理解为像素、声音等。int 用来表示数据类型,我们称它为数据类 型(Data Type)。
说明 | 字符型 | 短整型 | 整型 | 长整型 | 单精度浮点型 | 双精度浮点型 | 空类型 |
类型 | char | short | int | long | float | double | void |
1.连续定义多个变量
在 C 语言中,我们可以通过对多个变量的连续定义来使程序更加简洁,如:
int a,b,c;
float m=10.9,n=20.56;
char p,q='a';
2.数据的长度
数据长度可以理解为数据占用的内存大小,单位是字节。占用内存越大能够存储的数据 就越多,数字型变量的值就越大,反之就越小。
多个数据在内存中的存储方式是连续的,变量与变量之间没有明显的界限,如果计算机 不知道数据的长度,就不知道怎么存取变量。当我们保存一个任意整数时,它占用了 4 个字 节,而在读取的时候却认为它是 5 个字节,显然是不对的。
我们在定义变量的同时要明确它所占的内存大小,也就是数据的长度。数据类型的作用 就是告诉计算机数据的解释方式及其长度。C 语言的数据类型所占用的字节数是固定的,一 旦确定数据类型,数据的长度也随之确定了。
32位计算机
说 明 | 字符型 | 短整型 | 整型 | 长整型 | 单精度浮点型 | 双精度浮点型 |
数据类型 | char | short | int | long | float | double |
长度 | 1 | 2 | 4 | 4 | 4 | 8 |
拓展:C 语言提供的多种数据类型让程序更加灵活和高效,但增加了学习成本。PHP、 JavaScript 等编程语言,在定义变量时不需要指明数据类型,编译器会根据赋值情况自动 推演出数据类型,更加智能。
C、Java、C++、C#等在定义变量时必须指明数据类型,这样的编程语言称为强类型 语言。PHP、JavaScript 等在定义变量时不必指明数据类型,编译系统会自动推演,这样 的编程语言称为弱类型语言。
强类型语言一旦确定了数据类型,就不能再赋给其他类型的数据,除非对数据类型进 行转换。弱类型语言没有这种限制,一个变量可以先赋给一个整数,再赋给一个字符串。
3.关键字
关键字是由 C 语言规定的具有特定意义的字符串,也称为保留字,如 int、char、long、 float、unsigned 等。 关键字是具有特殊含义的标识符,它们已经被系统使用,我们不能再使用了。标识符不 能与关键字相同,否则会出现错误。 标准 C 语言中规定了 32 个关键字。
四.整数
整数是编程中常用的数据,C 语言通常使用 int 来定义整数。 在现代操作系统中,int 一般占用 4 个字节的内存,共计 32 位。如果不考虑正负数,当 所有的位都为“1”时值最大,为 2 32-1=4 294 967 295≈43 亿,这是一个很大的数,我们在实 际开发中很少用到这么大的数,而 1、16、1 024 等较小的数使用频率较高。
short int a=10;
short int b,c=99;
long int m=205546;
long int n,p=665587;
int 是基本的整数类型,short 和 long 是在 int 的基础上进行的扩展,short 可以节省内 存,long 可以容纳更大的值。 short、int、long 是 C 语言中常见的整数类型,其中 int 称为整型,short 称为短整型, long 称为长整型。
1.整型的长度
C 语言没有严格规定 short、int、long 的长度,只做了如下限制:
(1)short 至少占用 2 个字节;
(2)int 建议为一个机器字长。32 位环境下机器字长为 4 个字节,64 位环境下机器字长为 8 个字节。
(3)short 的长度不能大于 int,long 的长度不能小于 int。 总结起来,它们的长度(所占字节数)关系为: 2≤short≤int≤long Short 和 long 可能与 int 占用相同的字节数。 在 16 位环境下,short 和 int 为 2 个字节,long 为 4 个字节。16 位环境多用于单片机和 低级嵌入式系统。
操作系统 | short | int | long |
Win 64(64 位 Windows) | 2 | 4 | 4 |
类Unix 系统64 位(Unix、Linux、Mac OS、BSD、Solaris 等) | 2 | 4 | 8 |
2.sizeof 操作符
如果想要知道某个数据类型的长度,可以使用 sizeof 操作符。
获取基本数据类型的大小
#include <stdio.h>
int main() {
printf("Size of int: %zu bytes\n", sizeof(int));
printf("Size of char: %zu bytes\n", sizeof(char));
printf("Size of float: %zu bytes\n", sizeof(float));
printf("Size of double: %zu bytes\n", sizeof(double));
return 0;
}
注:sizeof 是 C 语言中的操作符,不是函数,所以可以不带( )。
五.浮点数
C 语言中常用的浮点数有 2 种类型,分别是 float 或 double。float 为单精度浮点型, double 为双精度浮点型。 浮点数的长度是固定的。
类型名 | 类型标识符 | 占用空间 | 取值范围 |
单精度浮点型 | float | 32 位(4 个字节) | -3.4×10^38 ~3.4×10^38 |
双精度浮点型 | double | 64 位(8 个字节) | -1.7×10^308 ~1.7×10^308 |
六.字符型数据
1.字符的表示
初学者经常用到的字符类型是 char,它的长度是 1,只能容纳 ASCII 表中的字符,也就 是英文字符,处理汉语、日语、韩语等英文之外的字符需要使用其他字符类型。
char a='1';
char b='$';
char c='X';
char d=' '; /* 空格是一个字符*/
2.字符数据和整型数据的关系(可忽略)
在为字符型变量赋值时,内存中存放的不是字符本身,而是该字符对应的 ASCII 值,是 类似整型的数,因此,在 C 语言中字符型数据和整型数据是可以通用的。
3.转义字符
在 C 语言中,;转义字符是以“\”开头的字符序列,它把字符的原始含义转换成其他 含义,如“\n”的含义为换行,通过“\”把 n 的原始含义转换成换行
常用的转义字符
转义字符 | 功能 | 转义字符 | 功能 |
\n | 换行 | \' | 单引号字符 |
\b | 退格 | \'' | 双引号字符 |
\t | 制表符 | \\ | 反斜杠字符 |
\r | 回车 | \ddd | ddd 为1~3 位八进制数所代表的字符 |
\a | 响铃 | \xhh | hh 为1~2 位十六进制数所代表的的字符 |
\v | 纵向跳格 | \0 | ASCII 为0 的空字符 |
\f | 换页 |
七.经验总结
在学习 C 语言的数据类型时,以下经验总结可能会对你有所帮助:
1. 理解基础类型:首先,要深入理解 C 语言中的基本数据类型(如 `int`, `char`, `float`, `double`)及其存储大小和范围。这有助于你正确选择数据类型以存储特定范围内的值。
2. 掌握类型转换:熟悉不同数据类型之间的隐式和显式转换规则。了解何时需要进行类型转换,以及如何避免因类型转换不当导致的精度损失或溢出。
3. 熟悉修饰符:了解 `signed`, `unsigned`, `short`, `long` 等类型修饰符的作用,它们可以改变基本数据类型的存储大小和表示范围。
4. 类型大小与对齐:了解不同平台上数据类型的大小和对齐要求可能不同。使用 `sizeof` 操作符来获取数据类型的大小,这对于编写可移植代码非常重要。
遵循这些经验总结,你将能够更有效地学习 C 语言的数据类型,并在编程实践中更加得心应手。
————由于博主还是大三的在读生,时间有限,每天会不定时更新一些学习经验和一些32的项目,如果喜欢就点点关注吧,大佬们!!!!————