今天复习c语言中数组的基本知识。简单的总结一下
#include <stdio.h>
#define N 5
//不允许如下定义数组,虽然
void fun(int n)
{
int arr[n];
int i=0;
for(i;i<n;i++)
{
printf("%d\n",arr[i]);
}
}
int main(int argc, char const *argv[])
{
//注意:数组元素个数:只能是字面常量值 宏变量 只读变量,不能是一般变量
int a[5]={0}; //所有数组元素都为零
int b[N];
const int n=7;
int c[n];
//不支持如下定义数组,虽然编译器不会报错
int num=6;
int d[num];
//fun(3);编译器会报错
//数组名与数组元素之间的关系
//利用下标值获取数组的每个元素值
//a[i]; //i数组下标。从0,1,2....
int e[5];
/*1.数组名表示数组的第一个元素地址*/
printf("%X\n",e);//BFB930E4
printf("%X\n",&e[0]);//BFB930E4
printf("%X\n",&e);//表示数组一段空间
printf("%X\n",e+1); //输出数组的第二个元素地址 BFD14A68
printf("%X\n",&e[1]); //输出数组的第二个元素地址 BFD14A68
printf("%X\n",&e+1); //跨过整个数组的空间
//访问每个数组元素的起始地址
int i=0;
for(i=0;i<5;i++)
{
printf("%X\n",e+i);
}
//输出每个数组元素
for(i=0;i<5;i++)
{
printf("%d\n",e[i]);
}
/*
注意 数组名相当与一个只读指针变量 虽然是指针,但在计算 sizeof(数组名) 时不能当成指针
数组名不能修改
*/
int ar1[4];
int ar2[5];
//ar1=ar2;这种写法错误
//ar1++;也错误
//数组的初始化
int f[]={1,2,3}; //根据初始化的值确定数组元素个数
for(i=0;i<5;i++)
{
scanf("%d",&e[i]);
}
//输出数组元素
for(i=0;i<5;i++)
{
printf("%d\n",e[i]);
}
return 0;
}