我在C++
练习功能。在一些随机笔记中,我找到了一个按值调用的函数和通过引用调用的示例。
代码是
#include <string.h>
#include <iostream>
#include<stdio.h>
using namespace std;
void F1(float a, float b)
{
a++;b++;
}
void F2 (float &a, float &b)
{
a++;
b++;
}
int main ()
{
float a=9,b=5;
float *ptrA=&a;
float *ptrB=&b;
F1(a,b);
cout<<"\na:"<<a<<"\nb:"<<b;
F2(a,b);
cout<<"\na:"<<a<<"\nb:"<<b;
}
现在对于函数F2,我很困惑,在main函数中我传递了a和b的值,并且在定义中它接收了变量a和b的地址。那么如何在a和b的值中完成增量?
答案 0 :(得分:1)
电话
F2(a,b);
实际发送a和b的地址,而不是它们的值,因为F2的声明方式。在C ++中,引用就像指针一样,只是语法更清晰。因此F2实际获取a和b的地址,然后a ++和b ++对main()中定义的原始变量进行操作。
答案 1 :(得分:0)
看起来你是在将浮点指针传递给函数
之后void F1(float a, float b)
{
a++;b++;
}
void F2 (float* a, float* b)
{
a++;
b++;
}
int main()
{
float a, b;
a = 5;
b = 7;
F1(a, b);
// a is still 5 and b 7
F2(&a, &b);
// a is 6 b is 8
}