C语言是一种面向过程的编程语言,是最常见的编程语言之一,广泛应用于计算机科学领域。在C语言中,数据类型是非常重要的,因为它们定义了变量和表达式的类型和大小。
要想搞清楚数据类型我们先要学习一下常量与变量
常量:指的是在程序运行中,其值不能被改变的量,一般有整型常量(3,5,8)、实型常量(十进制数或指数形式)和字符型常量(‘A’,‘B’,‘#’)
在这里单独介绍下转义字符,如下:
字符串常量(“boy”)和符号常量( PI=3.1415926)。
变量:变量代表一个有名字且具有一定特定属性的一个储单元,必须要保证它先定义后使用,可在程序运行时被更改。
例如: char a = ‘A’;a作为变量在内存中就会占用1字节的储存空间,同样的int b = 100;在内存中占用必须被4整除的4字节空间。图示如下:
3. 那么常变量又是什么呢?
常变量就是被赋予了常属性的变量,但是不可改,例如下面代码是不可行的。
#include <stdio.h>
int main ()
{
const int n = 2;
n = 20;
return 0;
}
标识符常量又是什么呢?
标识符常量通常用#define来定义,输出值为100。
#include <stdio.h>
#define max = 100
int main ()
{
printf ("%d \n",max);
return 0;
}
枚举常量又是什么呢?
#include <stdio.h>
enum RGB
{
RED,GREEN,BLUE
};
int main ()
{
printf(%d\n,RED);
printf(%d\n,GREEN);
printf(%d\n,BLUE);
return 0;
}
运行结果:
可以看到,三原色红绿蓝对应的值为0,1,2且不可被改变,放在枚举类型RGB中,RED就叫一个枚举常量。
4.常见数据类型
C语言中有四种基本数据类型:整型、浮点型、字符型和布尔型。
整型:整型数据类型可用来存储整数。它们被定义为short、int、long、long long等类型。它们之间的区别在于它们的大小和范围。例如,int类型可以存储32位整数,而long类型可以存储更大的整数。
浮点型:浮点型数据类型可用来存储小数。它们被定义为float、double和long double等类型。它们之间的区别在于它们的精度和范围。例如,float类型可以存储6位有效数字,而double类型可以存储更多的有效数字。
字符型:字符型数据类型用于存储字符。它们被定义为char类型。在C语言中,每个字符都有一个关联的ASCII码值。例如,字符'A'的ASCII码值为65。
布尔型:布尔型数据类型只有两个值:true和false。它们被定义为bool类型。在C语言中,true的值为1,false的值为0。
为了便于理解,这里先介绍一下bit,一个 bi只能存储一个0或1,8个bit便是一个字节(00000001)。
(1)整型举例: int 用于储存整数,占2/4字节
short(短整型),占2字节
long(长整型),占4/8字节,int的字节是由编译器决定的,而long分配的字节数大等于int即可
unsigned int(无符号基本整型),占4字节
(2)字符型举例: char 用于储存单个字符,占1字节
unsigned char (无符号字符型)
(3)浮点型举例: float(单精度)用于储存小数,一般小数点后一位,占4字节
double(双精度)用于储存多位小数,占8字节
(4)指针类型举例: 数据类型符*指针变量[ x ],x为其赋值
简单来说,指针就是存放数据的内存单元地址,指针变量除了可以存放变量的地址外,还可以存放其他数据地址,数组或函数,指针是较为复杂的,在这里不过多介绍,后续会更新。
5.此外我们还要搞清楚全局变量与局部变量
举个简单的例子:
#include <stdio.h>
int a =100 ;
int main ( ) //主函数
{
int a =10;
printf("%d\n,a ");
return 0;
}
此时我们的代码中出现的两个a的定义,那么运行的结果是什么呢,结果是10,那么这是为什么呢,因为,当全局变量和局部变量相同时,局部变量优先,因此全局变量就是定义在主函数(代码块)之外的变量,而之内的显然是局部变量,要注意的是局部变量只能在相应的代码块之中使用,而全局变量任意代码块皆可调用。
最后再来介绍一下数组和结构体:
数组:数组是一组具有相同数据类型的元素的集合。它们被定义为一个变量,该变量存储一组元素,并使用索引来访问每个元素。例如,int数组可以存储多个整数。
结构体:结构体是一种用户定义的数据类型,可用于存储不同类型的数据。每个成员可以是任何数据类型。例如,一个人可以被表示为一个包含姓名、年龄和地址等信息的结构体。
今天的分享到此结束,部分地方可能描述的不是很清楚,结和课本理解,感兴趣一起交流喔。