C语言第七回合:数组

C语言第七回合:数组

 

【学习目标】

1.        认识数组

2.        数组的定义和初始化

3.        一维数组

4.        二维数组

 

 

数组:由一系列类型相同的元素构成的。

      数组可分为一位数组、二维数组和多维数组(多维数组使用的比较少,这里不讲)

注意: 使用数组前必须先进行定义,下标总是以0开始的。

 

A:一维数组

a 定义:

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

如:int array[ size ];  //分配空间是array[0]…a[size-1]

下界= 0;  //array[0]

上界= size- 1; 最后一个array[ size- 1 ]

长度= size上界+ 1;

 

PS: (1)类型说明符是任何一种基本的数据类型或构造数据类型

     (2)数组名是用户定义的合法的标识符

(3)方括号中的常量表达式表示元素的个数,即数组的长度。

(4)数组的下标是从0开始计算的,不能越界!!

如:

#include <stdio.h>
 
int main( void )
{
         //数组的定义
         float    score[ 3 ];  // 3个浮点型数组
         char   name[15 ];   // 15个字符数组
         int   number[ 60 ]; // 60个整型数组
        
         return 0;
}

b 初始化

类型说明符  数组名[常量表达式]= {值, 值, 值……};

(1)   可以给部分的元素赋初始值

如;

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

表示只给a[0]- a[4]都分别赋值了,而后面的自动初始为0;

(2) 可以给元素逐个赋值

如:

int a[3]= {`1, 2, 3 };
//或像下面赋值
a[ 0 ]= 0;
a[ 1 ]= 1;
a[ 2 ]= 2;
a[ 3 ]= 3; //错!!越界了!!!


(3)  给全部的元素赋值,可以隐藏数组的个数

如:

int a[]= {3, 2, 4, 6};
//等价于:
int a[4]= {3, 2, 4, 6};


注意:数组定义完后,不能越界,不能改变已经分配的空间大小!

 

//一数组初始化实例                                                                                               
#include <stdio.h>
 
int main( void )
{
   //浮点型数组score
   //分别定义score[ 0]= 60.9, score[ 1 ]= 99.0, score[ 2 ]= 82.0
   float score[ 3 ]= { 60.9, 99.0, 82.0 };
   
          
        
    //int型数组:只初始化前一部分的数据,后一部分默认初始化为0
    intnumber[ 6 ]= { 1, 2, 3, 4 };
   //等同于 number[ 6]= { 1, 2, 3, 4, 0, 0 };
        
        
     //char类型字符数组name
    charname[ ]= { 'A' };
    //分别是:name[ 0]= 'A' 
        
    //与上面一条语句类似,但不同!!!! 下面是个字符串
    charmyname[ ]= { "A" }; // 等同于char myname[ ]= "A"
    //分别是myname[0]= 'A', myname[ 1 ]= '\0'   
                  
         return0;
}
 


B: 二维数组

(1)      定义:

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

常量表达式1表示第一维的长度,常量表达式2表式第二维的长度

如:int[3][4];

表示一个三行四列的数组

 

实际的数组布局如下


(2) 初始化

和一维数组一样,只不过是定义的元素个数等于:表达式1×表达式2

 

//二数组初始化实例
#include <stdio.h>
 
int main( void )
{
   //int 型数组的定义
   int array[ 2 ][ 2 ]= { 1, 2, 3, 4 };
   
    /*上面等同于
                    array[ 0 ][ 0 ]= 1 ;
                    array[ 0 ][ 1 ]= 2 ;
                    array[ 1 ][ 0 ]= 3 ;
                    array[ 1 ][ 1 ]= 4 ;
          */
                  
         //字符数组的分配
         //定义字符串数组
         charstr[ 2 ][ 10 ]= {
                                 "abc",
                                 "defgh"
                              };
         //定义两个字符串,每个字符串最大可包含10个字符(包含'\0')
         /*等同于把
         str[0 ][ 10 ]= "abc";   //字符串不能直接赋值给字符串数组,需通过函数!!
         str[1 ][ 10 ]= "defgh"; //除了定义时并初始化
         */
          
         return 0;
}


【指尖的微笑】错误在所难免,希望得到大家的指正^-^

转载时保留原文的链接http://oursharingclub.joinbbs.nethttp://blog.csdn.net/mirrorsbeyourself

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值