数组的长度一般不能省略; int a[ ]; 错误
如果边赋初值,边定义时,数组的长度可省。 int a[ ]={1,2,3,4,5}; 正确 4 输入和输出:
int a[8]={1,2,3,4,5,6,7,8};
printf(“%d ….. %d”,a[0],a[1],…..a[7]); 输出时,建议用 for 循环来做 for(i=0;i<8;i++)printf(“%d”,a[i]); 输入:用 for
for(i=0;i<8;i++)scanf(“%d”,&a[i]);
对一维数的输入和输出,一般要求用for循环来做
5 一维数组与指针
int a[8];
数组名 a 就是数组的首地址;
数组中第0个元素的地址,&a[0]与a相等; a+i 就是第i个元素的地址;
int a[8],*p; p=a;
接下来相要表示数组中第i个元素的地址: &a[i] a+i p+i &p[i] 想要表示数组中的元素: a[i] *(a+i) *(p+i) p[i]
int a[8],*p; p=a;
p 就是a ,a就是p
应用:
3 从数组中删除指定元素。
4 已知有一有序数组:
-7 2 6 11 20 35 49 75
随机输入一 x,把x插入到数组中,要求插入完,数组仍然有序。 25 int a[10]={-7,2,6,11,20,35,49,75};
一维数组、指针、函数
void fun(int *p) {
p[0] }
void main() {
int a[10]={-7,2,6,11,20,35,49,75}; fun(a); 实参是一维数组名,数组的首地址 }
如果参数传递时,实参是一维数组名,那么形参必须是一个指针,或者也是一个一维数组。