一维数组和二维数组的定义及用法

一维数组的定义

类型说明符  数组名 [常量表达式];

在此说明:常量表达式必须是常量和常量符号。常量表达式定义了数组的长度。在宏定义中#define定义一个符号常量,则这个符号常量可以用来声明数组的个数

#define n=9

.....

int arr[n];

 

一维数组的引用

数组必须先定义在使用,可以通过引用数组元素方式使用该数组中的元素,如arr[0]就是访问的数组的第一个元素。

一维数组初始化的方式有三种

1.完全初始化

   int a[5] = { 1, 2, 3, 4, 5 };

2.部分初始化,没有赋值的元素默认值为0

     int a[6] = { 1, 2, 3 };

因为这个数组有留个元素,前三个分别赋值为1,2,3,后边没赋值他们就为0。

 

3.不指定数组长度,系统会根据元素个数定义数组的长度。

    int a[] = { 1, 2, 3, 4, 5 };

注意事项:

1.数组名不能和其他变量名相同如下:

int a;

int a[];

2.[]里面一定为常量表达式,常量表达式可以是整型常量,整形符号常量和整形常量表达式

 

3.避免数组越界。数组元素个数不能超过给定的值。

 

4.给数组赋值只能逐个赋值,不能整体赋值。

 

二维数组的定义

类型说明符  数组名 [常量表达式1] [常量表达式2];

        int arr[n][m];//定义了一个n行m列的数组

二维数组的引用

与一维数组引用的方式一样都是通过引用数组下标的方式引用的。如arr[0][0],arr[0][1]

 

二维数组初始化方法

1.安行连续赋值,即将所有的数据写在一个大括号内,按照元素排列顺序对元素赋值。

       int a[2][2]= { 1, 2, 3, 4 };

2.给所有元素赋初值时,可以省略行标,但列标一定不能省略。

       int a[][2]= { 1, 2, 3, 4 };

3.按行分段赋值,可以分行给数组元素赋值

      int a[][2] = { { 1, 2 }, { 3, 4 } };

 

4.也可以直接对元素赋值

       int a[2][2]

          a[0][0] = 1;

          a[0][1] = 2;

 

 

字符数组的定义

char   数组名 [常量表达式];

             char arr[5];

 

字符数组的引用

与其他数组引用方式相同,也是通过下标访问的。如arr[0]='a';\

 

字符数组的初始化:

1.逐个把字符赋给字符数组

char arr[5] = {'a','b','c','d','e'};

 

2.如果在定义字符数组长度时进行初始化,可以省略数组长度

char arr[] = {'a','b','c','d','e'};

 

3.利用字符串给字符数组赋值。

char arr[] = {"hello"};

或者将{}去掉

char arr[5] = "hello";

 

注意字符数组的结束标志为'\0'。

字符数组的输入输出方式

1."%c",实现的是单个字符的输入和输出

int main(void)

{

        char arr[] = { 'a', 'b', 'c', 'd', 'e' };

        int i = 0;

        int sz = sizeof(arr) / sizeof(arr[0]);

        for (i = 0; i < sz; i++)

        {

               printf("%c ", arr[i]);

        }

        system("pause");

        return 0;

}

2."%s",实现的是字符串的输入和输出。

 

int main(void)

{

        char arr[] = "hello";

        int i = 0;

        printf("%s ", arr);

        system("pause");

        return 0;

}

 

 

 

 

 

 

 

 

  • 14
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值