C语言的数组与函数

来源:互联网 发布:淘宝都是假货吗 编辑:程序博客网 时间:2024/04/18 20:44

数组作为函数形参

// 1. 形参是一个指针void myFunction(int *param){}// 2. 形参是一个已定义大小的数组void myFunction(int param[10]){}// 3. 形参是一个未定义大小的数组void myFunction(int param[]){}

从函数返回数组

int * myFunction(){}

实例

#include <stdio.h>#include <stdlib.h>/* 要生成和返回随机数的函数 */int *getRandom() {    static int r[10];    for (int i = 0; i < 10; ++i) {        r[i] = rand();        printf("r[%d] = %d\n", i, r[i]);    }    return r;}int main() {    int *p = getRandom(); // 指向整数的指针    for (int i = 0; i < 10; i++) {        printf("*(p + %d) : %d\n", i, *(p + i));    }    return 0;}
r[0] = 16807r[1] = 282475249r[2] = 1622650073r[3] = 984943658r[4] = 1144108930r[5] = 470211272r[6] = 101027544r[7] = 1457850878r[8] = 1458777923r[9] = 2007237709*(p + 0) : 16807*(p + 1) : 282475249*(p + 2) : 1622650073*(p + 3) : 984943658*(p + 4) : 1144108930*(p + 5) : 470211272*(p + 6) : 101027544*(p + 7) : 1457850878*(p + 8) : 1458777923*(p + 9) : 2007237709

指向数组的指针

#include <stdio.h>int main() {    double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};    double *p = balance; // balance和p指向同一块地址    printf("使用指针的数组值\n");    for (int i = 0; i < 5; i++) {        printf("*(p + %d) : %.2f\n", i, *(p + i));    }    printf("使用 balance 作为地址的数组值\n");    for (int i = 0; i < 5; i++) {        printf("*(balance + %d) : %.2f\n", i, *(balance + i));    }    return 0;}
使用指针的数组值*(p + 0) : 1000.00*(p + 1) : 2.00*(p + 2) : 3.40*(p + 3) : 17.00*(p + 4) : 50.00使用 balance 作为地址的数组值*(balance + 0) : 1000.00*(balance + 1) : 2.00*(balance + 2) : 3.40*(balance + 3) : 17.00*(balance + 4) : 50.00
0 0