Code Bye

传址函数声明的问题

函数声明时需要指明是传值还是传址函数吗?
例如
#include <iostream>
#include <math.h>
#include <cstring>      /* 字符处理库 */
#include <iomanip>      /* setw(行宽) */
#include <cstdio>
using namespace std;
void su(int,int&);
void su(int num,int &times){//被调用函数
    for (int i = 2; i<num; i++) {
        if (num%i==0) {
            return;
        }
    }
    times++;
}
int main(){//入口函数—调用函数
    int times = 0;
    for (int i = 2; i<=13; i++) {
        su(i,times);
    }
    cout<<times;
}

这里假如void su(int,int&);不加&会报错。

解决方案

40

引用:
Quote: 引用:

C++中 声明和定义必须一致啊,加不加&区别可大了。

就是说假如函数中使用传址函数,那么必须声明也为传址函数即必须加&。这句话对吗?

是,不一致就会认为是两个函数,形成重载。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明传址函数声明的问题