C语言学习--03

        在之前的文章中,介绍了一个简单程序从编辑到执行的几乎所有步骤。下面将逐步深入C语言。

        首先了解一下C语言中的数据类型。其中大致可分为四个类型——基本数据类型,构造数据类型,指针类型,空类型。

        基本数据类型,是C语言中最基础的数据类型,包括整型(int)、实型(float和double)和字符型(char)。整型用于存储整数,实型用于存储浮点数,字符型用于存储字符。每种基本数据类型都有其特定的取值范围和存储大小。

        构造数据类型,是基于基本数据类型构建的,主要包括数组类型、结构体类型、共用体(联合)类型和枚举类型。数组类型可以存储相同类型的多个数据元素,结构体类型可以存储不同类型的数据元素,共用体类型可以存储多个不同类型的数据元素,但同一时刻只能使用其中的一个,枚举类型则是将一组整数值赋予有意义的名称。

        指针类型,是一种特殊的数据类型,它存储的是数据的内存地址,而不是数据本身。通过指针,我们可以间接地访问和操作数据。指针在C语言中有着非常重要的地位,是C语言的一大特色。

        空类型,主要用于函数返回值的类型声明,以及指针类型的声明。当一个函数不需要返回任何值时,其返回类型就可以声明为void。同样,当我们声明一个指针变量但不确定它指向哪种类型的数据时,也可以将其声明为void指针。

        数据类型确定了变量的大小范围,便于内存的分配,且方便了程序员对程序的理解。在了解数据类型后,我们再了解存储类型。一个变量不仅有大小,还要有在运行时的存储位置。这时就要用到存储类型,主要包括自动存储、静态存储、外部存储、寄存器存储四种。

        自动存储(Auto),自动存储类型的变量一般都是局部变量,只在程序中的某一个作用域可以使用。在未作说明的时候变量默认为自动存储,也可以说自动存储不需要显示说明。

        静态存储(Static),静态存储类型的变量在程序执行期间一直存在,直到程序结束。它们被分配在静态存储区,而不是动态存储区。静态变量在声明时就被初始化,如果我们没有显式地初始化静态变量,那么它们会被自动初始化为0。静态变量可以分为静态局部变量和静态全局变量。静态局部变量只在其定义的函数内部有效,但其生命周期为整个程序运行期间;静态全局变量在整个程序中都是可见的,但其作用域仅限于定义它的文件。

        外部存储(Extern),外部存储类型的变量也称为全局变量,它们在函数外部定义,可以被程序中的任何函数访问。外部变量的生命周期为整个程序运行期间,它们存储在静态存储区。在使用外部变量时,需要在变量名前加上关键字"extern",以告诉编译器该变量是在其他地方定义的。

        寄存器存储(Register),寄存器存储类型的变量是一种特殊的局部变量,它们被存储在计算机的寄存器中,而不是内存中。由于寄存器的访问速度比内存快得多,因此使用寄存器变量可以提高程序的执行效率。但是,由于寄存器的数量有限,因此不能声明过多的寄存器变量,由于寄存器可能还参与程序其他部分的运行,所以即便使用了寄存器类型也不一定能提速。此外register是一种申请而并不是命令,未得到申请的时候还是会使用auto存储。

        最后我们得到了变量声明的一般形式——存储类型 数据类型 变量名。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值