目录:
一、一维数组
1.1一维数组的创建和初始化
1.2一维数组的使用
二、二维数组
2.1二维数组的创建和初始化
2.2二维数组的使用
三、数组的指针访问
3.1指针的介绍
3.2二维数组指针的访问
数组:数组是一组相同类型元素的集合
一维数组
1.1数组的创建
type_t arr_name [const_n];
//type_t是指数组的元素类型
//const_n是一个常量表达式,用来指定数组的大小
创建实例:
char arr[10];
float arr[1];
int arr[0] //柔性数组,不代表创建0个单元
注意!注意!注意!
数组创建,[ ]中要给一个常量才可以,不能使用变量。
int count=10;
int arr[count];
1.2数组的初始化
//数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)
- int arr[10]={1,2,3}; //未完全初始化
- int arr[5]={1,2,3,4,5}; //完全初始化
1.3数组的使用
#include<stdio.h>
int main()
{
int i=0;
int arr[10]={0}; //数组的不完全初始化
int sz=sizeof(arr)/sizeof(arr[0]) //用于计算数组大小
for(i=0;i<sz;i++)
{
arr[i]=i;
}
for(i=0;i<sz;i++)
{
printf("%d",arr[i]);
}
return 0;
}
二维数组
2.1 二维数组的创建
int arr1[3][4];//三行四列
doble arr2[5][5];
2.二维数组的初始化
int arr1[3][4]={1,2,3,4}; //不完全初始化
int arr2[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};//完全初始化
注意!注意!注意!
int arr[][4]; //正确
int arr[4][]; //错误
2.3数组的使用
#include <stdio.h>
int main()
{
int arr[10][10] = {0};
int i = 0;
int j = 0; //通过下标递增赋值
for(i=0; i<10; i++)
{ for(j=0; j<10; j++)
{
arr[i][j] = i*10+j;
}
}
//循环打印
for(i=0; i<10; i++)
{
for(j=0; j<10; j++)
{
printf("%4d", arr[i][j]);
}
printf("\n");
}
return 0;
}
数组的指针访问
3.1指针的介绍
- 指针可以理解为一个变量,是一个专门用来存放地址的一个变量
- 通常我们所说的指针其实是一个指针变量指针的定义:
指针的定义:
int *ptr=NULL; //定义一个整形的指针变量,初始化为NULL
char *ptr=NULL;
举例说明:
int n=10;
int *q=&n; //将num(10)的地址存放在q指针变量
*q=20; //改变的其实是n这个变量的内容
3.2指针的访问
#include<stdio.h)
int main()
{
int i=0;
int arr[10]={0};
int sz=sizeof(arr)/sizeof(arr[0])
int *p_arr=arr;
for(i=0;i<sz;++i)
{
*(p_arr+i)=i; //通过对数组+整数的运算,我们就可以得到数组每个元素的地址
}
for(i=0;i<sz;++i)
{
printf("%d\n",*(p_arr+i));
}
return 0;
}