4124人加入学习
(13人评价)
C++编程系列 第二季函数和类

制作于2018.4.2

价格 免费

注意指针做形参的时候,可能会把指针所指的值修改掉。

[展开全文]

参数传递

形参的类型决定了形参和实参的交互方式。

如果形参是引用类型,它将绑定到对应的实参上(传引用参数);否则,将实参的值拷贝后赋给形参(传值参数)。

 

 

传值参数

传值参数有2种方式:

1.将实参的实际值复制给函数的形参。在这种情况下,修改函数内的形参对实参没有影响。

2.将参数的地址复制给形参(指针)。因为指针使我们可以见间接地访问它所指的对象,所以通过指针可以修改它所指对象的值。

 

 

#include "pch.h"
#include <iostream>
#include <string>

using namespace std;

int reset(int i);
void reset1(int* pi);

int main()
{
	int num = 10;
	cout << "reset: " << reset(num) << endl; // 20
	cout << "num: " << num << endl; // 10
	cout << "num的地址:" << &num << endl; // num的地址:001FFD04
	reset1(&num);
	cout << "reset1: " << num << endl; // 20
	cout << "num的地址:" << &num << endl; // num的地址:001FFD04
	return 0;
}
//传递实参的实际值,将实参的值拷贝给形参,函数体种修改的是形参的值,对实参不产生影响
int reset(int i)
{
	i *= 2;
	return i;
}

//传递实参的地址,修改*pi的值,就是修改实参指向的对象的值,修改pi的值,是修改的形参存储的地址,不影响实参的地址。
void reset1(int* pi)
{
	*pi *= 2;
	pi = 0;
}

 

[展开全文]

形参的类型决定了形参和实参的

[展开全文]

函数的形参在执行完以后会回收,不对实参产生影响,如果直接作用于地址,可以修改改指针地址中的实参,但是地址不会变。

int reset(int i) {
    i *= 2;
    return i;
}

void reset1(int* pi) {
    *pi *= 2;
    pi = 0;
}

[展开全文]

授课教师

SIKI学院老师

课程特色

下载资料(1)
视频(43)