C语言学习--07

        接下来我将讲解,数组和指针。

        数组是构造数据类型之一,是具有一定顺序关系若干变量的集合,数据可以是多维的。

        一维数组的一般形式为:存储类型 数据类型 数组名[表达式];如int a[10],表示定义了用于储存10个int类型大小的一维数组,数组名为a。

        数组必须先定义后使用,且C语言中只能逐个引用数组元素,不能一次性引用整个数组。数组元素可用:数组名[整数常量或整形表达式]。

        数组不初始化其元素值为随机数,对static数组不初始化其元素值为0,只给部分元素赋初值后续变量为0——编译阶段。

        对于多维数组格式一般为:存储类型 数据类型 数组名[表达式][表达式]...[表达式]。其中元素存储是一维的,按行顺序优先。

        在计算机内部存储器中,每一个字节单元都有一个编号,这个编号称为地址。C语言中,将内存单元的地址称为指针,将存储地址的变量称为指针变量。

        对于地址,有两个重要的运算符,一个是&(取地址运算符),一个是*(解引用运算符)。

        

        0x7ffcf813480c为a变量的地址,也为指针变量p的值,10为地址p中存储的变量的值。

        指针和数组有很多相似的地方,数组和指针都可以用来访问存储在同一内存区域的一系列数据,可以通过数组名和下标来访问数组元素,也可以通过指针和其偏移量来访问。在很多情况下,数组名和指针可以互相转换,数组名可以被解释为指向其第一个元素的指针,而指针也可以被解释为指向一个具有特定大小的数组的指针。

        不过也有很多不同的地方,数组是一个具有固定大小的数据结构,它包含了一系列同类型的数据元素。而指针则是一个变量,它存储了某个数据类型的内存地址。

        数组名不能被赋值和算术运算,被认为是一个常量,表示的是数组在内存中的位置。而指针可以被赋值,可以改变它所指向的内存地址。

        数组相对更安全,因为数组的大小是固定的,不能超出其边界。而指针则可能指向任意内存位置,如果不小心,可能会导致内存访问错误,如段错误或野指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值