您的位置:首页 > 编程语言 > C语言/C++

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

2014-06-06 17:38 423 查看
一、数组

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: