一些基本概念:
数组里的数据通过数组的下标访问。
初始化:定义的时候赋值叫初始化。
局部变量:定义在函数内部的变量。 全局变量:定义在函数外部的变量。
局部变量定义的时候如果没有初始化,那么它里面的值是个随机值(不是0)。
聚合类型:1、数组 2、结构体
聚合类型初始化时,如果只初始化一部分,剩余部分为0.
数组初始化时可以不写长度。如:int drr[]={1,2,3,4,5} 如果不给值:int err[]这种写法是错误的。
定义数组时中括号里的值必须是常量表达式:例如int arr[n]//这种写法是错误的
将arr[i]里的值全部赋值为0,可以利用循环一个一个赋值
for(int i=0;i<10;i++)
{
arr[i]=0;
}
也可以单独写一个函数
void InitA(int arr[10])
{
for(int i=0;i<10;i++)
{
arr[i]=0;
}
}//有问题,数组的长度不能随意更改
//void InitArr(int arr[10])
void InitArr(int *p)
void InitArr(int *p,int len)增加一个参数len 由主函数传递len的值 len=sizeof(p)/sizeof(p[0])
{
//for(int i=0;i<10;i++)
int len=sizeof(p)/sizeof(p[0])//这里的长度等于1,P指的是数组的首地址,不是整个数组
for(int i=0;i<len;i++)
{
p[i]=0;//可以把p就当成数组用*******
}
}
*数组名在两种情况下表示整个数组(定义这个数组的同一个函数内部)除此以外数组名表示数组首元素的地址
printf("%d",sizeof(arr))表示整个数组的大小
1、求数组长度的标准公式:sizeof(arr)/sizeof(arr[0])
2、&arr+1对数组名取地址加1,这时候会加整个数组的长度
一维数组,数组名表示数组的首元素地址 int*p=arr
将brr数组的值赋值给crr crr=brr//错误 数组不允许整体赋值。只有初始化时才能整体赋值。并且这时候的数组名表示数组元素首地址,是个指针
本文深入讲解了数组与变量的概念,包括数组的访问、初始化、局部与全局变量的区别,以及数组初始化的特殊情况。同时,探讨了如何正确使用数组,避免常见错误,如整体赋值的问题。

2408

被折叠的 条评论
为什么被折叠?



