(1)赋值,定义
//聚合类型:数组,结构体
//聚合类型如果只初始化一部分,那么剩余部分则为0,下面有实例
//初始化含义:在定义时直接赋值
# include<stdio.h>
int main()
{
int a = 10;
int b = 10;
int arr[10]; //这个数组长度为10,定义此数组为整型
arr[3]=10; //在arr这个数组中下标为3的元素为10
int brr[10] = {1,2,3,4,5,6,7,8,9,10}; //输出1,2,3,4,5,6,7,8,9,10
int crr[10] = {1,2,3,4,5}; //输出1,2,3,4,5,0,0,0,0,0
int drr[10] = {0,0,0,10}; //输出0,0,0,10,0,0,0,0,0,0
// int err[10] = {[3]=10}; //这种表示方法在c11中可以使用
int err[] = {1,2,3,4,5,6,7,8,9,10}; //输出1,2,3,4,5,6,7,8,9,10,现在常使用此方法初始化赋值
// int frr[a]; //这种表示方法在c99中可以使用,微软不支持,并且其中a应为常量,不能为变量
//下面是数组的输出的实现,以brr为例
//1.输出数组中具体某一个元素
//printf("%d\n",brr[0]); //输出下标为0的元素
//2.输出brr这个数组中每一个元素,用循环
//注意:数组下标从0开始
for(int i=0;i<10;i++)
{
printf("%d ",brr[i]);
}
return 0;
}
(2)数组名arr在两种情况表示整个数组
//1.在定义数组的同一个函数中,求sizeof(arr),整个数组的字节数
//2.在定义数组的同一个函数中,&arr+1,加整个数组
//3.其它情况则表示数组首元素的地址
# include<stdio.h>
void Show(int arr[],int len)
{
//for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
for(int i=0;i<len;i++) //数组长度len=sizeof(arr)/sizeof(arr[0]),两种表示方法都可以
{
printf("%d ",arr[i]);
}
printf("\n");
}
int main()
{
int arr[] = {1,2,3,4,5,6,7,8,9,10,11,12};
printf("%d\n",sizeof(arr)); //48
printf("%d,%d\n",&arr,&arr+1); //其中一次执行结果为6487568,6487616,之间相差48
Show(arr,sizeof(arr)/sizeof(arr[0])); //输出1,2,3,4,5,6,7,8,9,10,11,12
for(int i=0;i<10;i++)
{
printf("%d ",arr[i]); //输出1,2,3,4,5,6,7,8,9,10
}
return 0;
}