C语言学习笔记(四)数组

来源:互联网 发布:淘宝美妆店铺简介 编辑:程序博客网 时间:2024/04/30 11:34


一、数组

1.数组基本使用

    // 数组的定义格式: 类型 数组名[元素个数];    int ages[5] = {19, 29, 28, 27, 26};    // 19 19 28 27 26]    ages[1] = 29;        /*     ages[0] = 19;     ages[1] = 19;     ages[2] = 28;     ages[3] = 27;     ages[4] = 26;     */        /*     遍历:按顺序查看数组的每一个元素     */    for (int i = 0; i<5; i++)    {        printf("ages[%d]=%d\n", i, ages[i]);    }


2.数组注意

#include <stdio.h>int main(){    // 使用注意    // 都是正确写法    //int ages[5] = {10 , 11, 12, 67, 56};    //int ages[5] = {10, 11};    //int ages[5] = {[3] = 10, [4] = 11};    //int ages[] = {10, 11, 14};        // 错误写法    // int ages[];        // 错误写法    /* 只能在定义数组的同时进行初始化    int ages[5];    ages = {10, 11, 12, 14};    */        // 正确写法    // int ages['A'-50] = {10, 11, 12, 14, 16};    //int size = sizeof(ages);    //printf("%d\n", size);        // 正确写法    /*    int count = 5;    int ages[count];    ages[0] = 10;    ages[1] = 11;    ages[2] = 18;    */        //printf();    // 错误写法    // 如果想再定义数组的同事进行初始化,数组元素个数必须是常量,或者不写    //int ages[count] = {10, 11, 12};            int ages[] = {10, 11, 12, 78};        // 计算数组元素的个数    int count = sizeof(ages)/sizeof(int);        for (int i = 0; i<count; i++)    {        printf("ages[%d]=%d\n", i, ages[i]);    }        return 0;}


 

3,数组在当作函数传递时,传递的是数组的地址,会当做指针变量来使用。

#include <stdio.h>// 数组作为函数参数,可以省略元素个数// 数组作为函数参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组void change(int array[]){    //printf("array==%p\n", array);        array[0] = 100;}void change2(int n){    n = 100;}int main(){    int ages[6] = {10, 11, 10, 11, 10, 11};        //printf("ages==%p\n", ages);        change(ages);        //change2(ages[0]);        printf("%d\n", ages[0]);    return 0;}

 

注意点:

如果在c语言中 不声明函数的类型,默认是int类型。


 

/*设计一个函数,找出整型数组元素的最大值*/#include <stdio.h>int maxOfArray(int array[], int length){    // 数组当做函数参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下,占据8个字节        //int size = sizeof(array);    //printf("array=%d\n", size);        //sizeof(array);        // 1.定义一个变量存储最大值(默认就是首元素)    int max = array[0];        // 2.遍历所有元素,找出最大值    for (int i = 1; i<length; i++)    {        // 如果当前元素大于max,就用当前元素覆盖max        if (array[i] > max)        {            max = array[i];        }    }        return max;}


0 0