7月23日 数组与函数

一、一维数组

1.定义格式:

类型说明符  数组名[常量表达式];  例如  int a[10] 

2.一维数组初始化

 

  • int a[10]={0,1,2,3,4,5,6,7,8,9};
  •  int a[10]={0,1,2,3,4};       

       定义a数组有10个元素,但花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素值为0。

  • int a[10]={0};
  • 对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。

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

   也可以写成  int a[]={1,2,3,4,5};  

   int a[10]={1,2,3,4,5};  只初始化前5个元素,后5个元素为0。

 

二、二维数组

1.定义格式:

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

例如:float  a[3][4];定义a为3×4(3行4列)的数组

2.二维数组初始化

  • 分行给二维数组赋初值。

例如: int a[3][4]={{1,2,3,4},{5,6,7,8}, {9,10,11,12}}; 

  • 将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。

例如:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

  • 可以对部分元素赋初值。

例如: int a[3][4]={{1}, {5}, {9}};也可以对各行中的某一元素赋初值,如int a[3][4]={{1}, {0,6}, {0, 0, 0, 11}}; 

  • 如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。

例如:int a[3][4]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};等价于:int a[ ][4]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

        3.地址

int a[4][3] ;

printf( " %p\n", &a[0][0]) ; //首元素的地址,单位4字节

printf( " %p\n", a[0]) ; //首行首元素的地址,单位4字节

printf( " %p\n", &a[0]) ; //首行的地址,单位12字节

printf( " %p\n", a) ; //首行的地址,单位12字节

printf( " %p\n", &a) ; //数组的地址,单位48字节

 

       三、字符数组

        1.字符数组初始化

  • char c[10] = {‘I’, ‘’,‘a’,‘m’,‘’,‘h’,‘a’,‘p’, ‘p’,‘y’} ;

char c[11] = "HelloWorld";

        2.输入输出方法

  • 逐个字符输入输出。用格式符“%c”。
  • 将整个字符串一次输入或输出。用“%s”格式符。

        四、函数

        1.strcat函数-----------连接

其一般形式为:strcat(字符数组1,字符数组2)

strcat的作用是把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。

        2.strcpy函数-----------复制 

其一般形式为:strcpy(字符数组1,字符串2)

strcpy的作用是将字符串2复制到字符数组1中去。

(注:

         “字符数组1”必须写成数组名形式(如str1),

         “字符串2”可以是字符数组名,也可以是一个字符串常量。如:strcpy(str1,″China″);

          复制时连同字符串后面的′\0′一起复制到字符数组1中。

   )

        3.strcmp函数----------比较

其一般形式为:strcmp(字符串1,字符串2)

strcmp的作用是比较字符串1和字符串2。

          比较的结果由函数值带回

(1) 如果字符串1=字符串2,函数值为0。

(2) 如果字符串1>字符串2,函数值为一正整数。

(3) 如果字符串1<字符串2,函数值为一负整数。

        4.strlen函数----------长度

其一般形式为: strlen (字符数组)

strlen是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括′\0′在内)。

      附上笔记:

7月23日 数组与函数

7月23日 数组与函数

7月23日 数组与函数