C语言之数组

来源:互联网 发布:浙大网新 人工智能龙头 编辑:程序博客网 时间:2024/05/07 17:51

1.解析一维数组的创建和初始化

一维数组的创建:
数组的元素类型   数组名   [常量表达式]
1.一维数组的初始化:
数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。
定义数组大小并全部初始化:int arr1[5]={1,2,3,4,5};
不定义数组大小直接初始化:int arr2[]={1,2,3,4,5};
定义数组大小并不完全初始化:int arr3[5]={1,2,3};    //其余元素为0;
字符数组,定义数组大小并全部初始化:char arr4[3] = {'a',98, 'c'};
字符数组,并不完全初始化:char arr5[] = {'a','b','c'};
字符数组,其中存放字符串:char arr6[] = "abcdef";//数字中共有7个字符,最后一个为“\0”最为结束标志;

2.一维数组的使用

“[]”是解引用操作符,就是数组访问的操作符。数组是使用下标来访问的,下标从0开始。
比如:#include <stdio.h>
 int main()
 {
 int arr[10] = {0};
 int i = 0;
 for(i=0; i<10; i++)
 {
 arr[i] = i;
 }
 for(i=0; i<10; ++i)
 {
 printf("%d ", arr[i]);
 }
 return 0;
 }

3.一维数组的存储

一维数组在内存中是连续存放的,随数组下标的增长,元素的地址也在有规律的递增。

4.一维数组的指针访问

数组的数组名代表数组首元素的地址,如:int arr[]={1,2,3,4,5};
      printf("%p\n",arr);//打印出来的是数组首元素的地址
arr[i]和*(p+i)等价,都代表数组的第i个元素。

5.解析二维数组的创建和初始化

二维数组的创建:
数组的元素类型   数组名   [常量表达式][常量表达式]
二维数组的初始化:
定义数组大小并全部初始化:int arr1[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
                                       或int arr2[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
不完全定义数组大小初始化:int arr3[][4]={1,2,3,4,5};
                                       或int arr6[][4]={{1,2},{3,4,5}};
定义数组大小并不完全初始化:int arr5[3][4]={1,2,3,4,5}; 
                                          或int arr6[3][4]={{1,2},{3,4,5}};

6.二维数组的使用

二维数组的使用也是通过下标的方式,如:#include <stdio.h>
      int main()
      {
          int arr[3][4] = {0};
int i = 0;
for(i=0; i<3; i++)
{
int j = 0;
for(j=0; j<4; j++)
{
arr[i][j] = i*4+j;
}
}
for(i=0; i<3; i++)
{
int j = 0;
for(j=0; j<4; j++)
{
printf("%d ", arr[i][j]);
}
}
return 0;
       }

7.二维数组的存储

二维数组在内存中也是连续存放的,随数组下标的增长,元素的地址也在有规律的递增。

8.二维数组的指针访问 

#include <stdio.h>
int main()
{
int arr[3][4] = {0};
int *p = &arr[0][0];
int i = 0;
for(i=0; i<3*4; i++)
{
p[i] = i;
}
for(i=0; i<3; i++)
{
int j = 0;
for(j=0; j<4; j++)
{
printf("%d ", arr[i][j]);
}
}
return 0;
}

原创粉丝点击