数组总结

数组的创建

type_t   arr_name    [const_n];

注意:

1.[]中要是一个常量

2.数组初始化时,[]不能为0。

int arr[0]; //error代码

3.数组创建的时候如果不想指定数组的确定大小就要初始化。数组的元素个数根据初始化的内容来确定。

char arr1="abc";
char arr2="abc";
if(arr1==arr2)
  printf("hehe\n");//error代码
char *p1="abc";
char *p2="abc";
if(*p1==*p2)
  printf("hehe\n");//√


数组的使用

总结:

1.数组是使用下标来访问的,下标从0开始。

2.数组的大小计算

int arr[10];
int sz=sizeof(arr)/sizeof(arr[0]);


数组的存储

数组在内存中是连续存放的。(一维、二维、多维数组)


指针

总结:

1.内存中的一个内存单元(字节)对应一个地址。

2.在32位平台上指针的大小是4个字节,64位平台是8个字节。

int num=10;
int *p=#; //将num的地址存放在p指针变量中
*p=20; //改变的是num这个变量的内容


一维数组的指针访问

arr[i]=*(arr+i)=*(i+arr)=i[arr]

注意:

1.数组的数组名就是数组首元素地址。

2.对数组名+整数的计算,其实可以获取到数组每个元素的地址。

3.&数组名就是整个数组的地址。+1是指向下一个数组的地址。

4.数组名代表整个数组的时候只有两种情况:

  1>sizeof(数组名)     2>&数组名


数组作为函数参数

数组作为函数参数的时候,不会把整个数组都传递过去。实际上只是把数组的首元素的地址传递过去了。

void test(int arr[])
{
  ...
}这里的int arr[]表示依然是一个指针,相当于 int *arr

附:数组相关运算(重要)

https://blog.csdn.net/sifanchao/article/details/79797241#0-qzone-1-83922-d020d2d2a4e8d1a374a433f596ad1440

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值