数组知识整理归纳

  1. 数组的创建
type_t  arr_name [const_n];
//type_t 是指数组的元素类型
//const_n 是个常量表达式,来指定数组的大小

其中[ const_n]中const_n必须是常量,不能像下面这样

int count = 10;
int arr[count];

2.数组的初始化
定义:在创建数组的同时给数组的内容⼀些合理初始值(初始化)
在初始化时一定要知道初始化的内存分配情况,下面举例子说明一下:
这里写图片描述
3.数组的访问
- 3.1区分&a[0]和&a的区别
a[0]是一个元素,a是整个数组,虽然取&a[0]和&a的值一样,但意义不一样,前者是取首元素的地址,后者是取数组的首地址
这里写图片描述
从上图可以看出获取数组每个元素地址可以通过&符或者数组名+整数的运算来获取,并且数组在内存中是连续存放的
-3.2指针(*)操作符访问数组
指针可以理解为一个变量,是一个专门来存放地址的个变量。通常指针其实是个指针变量。

int *ptr = NULL;//定义一个整型的指针变量,初始化为NULL.
char *ptr = NULL;//定义一个字符的指针变量,初始化为NULL.
double *ptr = NULL;//定义一个双精度浮点数的指针变量,初始化为NUL

而指针的访问时通过*(解引用操作符)来操作数组

int main()
{
    int arr[10] = {0};
    int i = 0;
    int *p_arr = arr;
    for(i=0; i<sizeof(arr)/sizeof(arr[0]); ++i)
        {
            *(p_arr+i) = i;
        }
    for(i=0; i<sizeof(arr)/sizeof(arr[0]); ++i)
    {
        printf("%d", *(p_arr+i));
    }
    printf("\n");
    system("pause");
    return 0;
}

这里写图片描述
我们可以发现*数组地址就可以拿到数组的元素。
在用sizeof来计算数组大小时,切记把我一下原则;
1.sizeof(数组名),这的数组名表示整个数组,计算的是整个数组的大小
2.&数组名,这的数组名表示整个数组,取出的是整个数组的大小
3.除此之外,所有的数组名都表示数组首元素的地址
这里写图片描述
从上面代码以及结果可以看出,上面三个原则的重要性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值