数组分为:一维数组和二维数组
先介绍"一维数组"
一:一维数组的创建和初始化
一维数组 由三部分组成 :数组的类型名+数组的名称+数组的大小写成 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}; 与一位数组初始化基本类似
六:.二维数组的使用
二维数组的使用也是通过下标的方式来访问的
七:二维数组的存储
八:二维数组的指针访问
}