【C++语法】函数和数组

函数和一维数组

# include <iostream>

using namespace std;
const int ArSize = 8;

int sum_arr(int arr[], int n);//正确的函数原型

int main()
{
    int cookies[ArSize] = {1, 2, 4, 8, 16, 32, 64, 128};
    
    int sum = sum_arr(cookies, ArSize);
    cout << "Total cookies eaten: " << sum << endl;
    
    
    return 0;
}

int sum_arr(int arr[], int n)
{
    int total = 0;
    for(int i = 0; i < n; i++) total += arr[i];
    
    return total;
}

在C++中,当且仅当用于函数头或函数原型时,int * arr 和 int arr[ ]的含义才是相同的,它们都意味着arr是一个int指针。

当指针指向数组的第一个元素时,使用数组表示法;而当指针指向一个独立的值时,使用指针表示法 。

将数组地址作为参数可以节省复制整个数组所需的时间和内存

两个重要的恒等式:

  • arr[i] = *(arr + i)
  • &arr[i] = &*(arr + i) = arr + i

 

函数和二维数组

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

int total = sum(data, 3);

//正确的函数原型
int sum(int arr[][4], int size);
int sum(int (*arr)[4], int size);

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值