小议 “数组”

来源:互联网 发布:mac 菜单栏 编辑:程序博客网 时间:2024/06/06 09:50


数组分为:一维数组和二维数组

先介绍"一维数组"

一:一维数组的创建和初始化

 一维数组 由三部分组成 :数组的类型名+数组的名称+数组的大小写成 int arr [10];

类型名 数组名 【常量表达式】

创建 例如创建一个整形数组,里面可以存放10个整形元素 就可以


二:一维数组的使用

[ ] 下标操作符,仅能提取确实已存在的元素。

#include <stdio.h>
void fun(int arr[],int sz)
{
int i = 0;
for (i=0; i<sz; i++)
{
arr[i] = i;
printf("%d",arr[i]);
}


}
int main()
{
int arr[] = {1,2,3,4,5,6,7,8,9,0};
int sz = 0;
sz = sizeof(arr)/sizeof(arr[0]);
fun(arr,sz); 



return 0;
}

三:一维数组的存储

数组在内存中是连续存放的

          

arr【0】                                                  arr【9】

低地址 高地址  存放在栈空间中

容易出错的一道题

#include <stdio.h>
int main()
{
int i = 0;
int arr[9] = {0};
for (i=0; i<12; i++)
{
arr[i] = 0;
printf("hehe");
}


}

溢出 hehe无限循环

四:.一维数组的指针访问

int *p = int arr[10] ;

指向数组首元素的地址



#include <stdio.h>
int main()
{
int arr[10] = {0};
int i = 0;
for (i=0;i<sizeof(arr)/sizeof(arr[0]); ++i)
{
printf("&arr[%d] = %p\n",i,&arr[i]);
printf("%p\n",arr+i);
}
return 0;
}

五:解析二维数组的创建和初始化

   int arr [3] [5]

就是一个 3行5列的2维数组。分配空间 3*5 共计15 个单元       

int arr[3] [5] ={0};  与一位数组初始化基本类似

六:.二维数组的使用

二维数组的使用也是通过下标的方式来访问的


七:二维数组的存储 



八:二维数组的指针访问 


}

原创粉丝点击