一维数组及指针

一维数组的创建和初始化

数组是一组相同类型元素的集合,在内存中按顺序存放。
type array_name [const_n]
type ->类型
array_name->数组名
const_n 常量表达式,用来指定数组的大小

数组创建实例

int array [10];
[ x ] x可以常量,不能是变量

数组的初始化

int arr1[10] = {1,2,3};
int arr2[] = {1,3,5,7};
char arr3[2] = {‘a’,98,’b’};
char[] = “abcdefg”;

数组在创建的时候如果不想指定大小就需要初始化。数组的个数根据初始化的内容来定。

// 内存分配为4字节
char arr1[] = “abc”;

//内存分配为存分配为3字节
char arr2[3] = {‘a’,‘b’,‘c’};

//内存分配为四字节
char *p = “abcdef”;
内存中的存储方式
[],下标引用操作符,用来进行数组访问的操作符。

总结:
1.数组是使用下标来访问的,下标是从0开始的。
2数组的大小是可以通过计算得到的。

int arr[10];
int sz = arr[10]/arr[0];
指针

1.内存中的一个内存单元(字节)对应一个地址。
2.在32位平台上指针的大小是4个字节,64位平台是8个字节。
所以我们在C语言中取出某个变量的地址。

int n = 10;
&n;    //取出n的地址

指针可以理解为一个变量,是一个专门用来存放地址的变量。
数组名其实是数组首元素的地址。

所以可以通过指针来进行访问数组

#include<stdio.h>
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\n", *(p_arr+i));
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值