数据结构----数组

一、数组

数组 Array是一组数据的集合 ,在c语言中,比如:字符串 char ,是一种数组,字符串由多个字符构成;在定义时,首先要明确数组的大小。

数组中的每一个数据叫做数组元素 Element,数组中的每个元素都有一个序号,这个序号从 0 开始,称为下标 Index,例如,a[0] 表示第0个元素,a[3] 表示第3个元素。数组是一个整体,它的内存是连续的,
[图片]

静态数组

:是在编译时,要确定数组大小, 因此为了防止内存溢出,需要合适定义数组大小

//静态数组定义
//整形数组
int a[5] = {1,2,3,4,5};   //数组长度为5,只能存放5个元素
//浮点数数组
float a[5] = {1.0,2.0,3.0,4.0,5.0};   //数组长度为5,只能存放5个元素
//浮点数数组
double a[5] = {1.0,2.0,3.0,4.0,5.0};   //数组长度为4,只能存放4个元素
//字符串
char a[5] = "12345";     //数组长度为4,只能存放4个元素

//访问数组
print("数组第1 个元素 a[0]=", a[0]);  // 数组第1 个元素 a[0]=1

动态数组 :

它不需要在编译时就确定大小,它的大小在程序运行过程中确定,所以可以根据程序需要而灵活的分配数组的大小,相比静态数组,它更“灵活”、“自由”。但是动态数组需要进行显式的内存释放。

//动态数组定义
int *a = (int*)malloc(sizeof(int)*10); 
int *a = new int[10];
完整代码

#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
int main(int argc, char** argv){
    int a[10];
    printf("%.16X\n", (uint64_t)(&a));
    printf("%.16X\n", (uint64_t)(a));
    int *b = new int[10];
    printf("%.16X\n", (uint64_t)(&b));
    printf("%.16X\n", (uint64_t)(b));
    delete[] b; b = NULL;
    return EXIT_SUCCESS;
}
// 输出结果
000000006D4AB370
000000006D4AB370
000000006D4AB358
000000001FE05D40

总结:
a[0] 的地址和a 地址一样
b是个变量, 是个指针。 变量的地址与他存储地址是不同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值