文章
18
粉丝
183
获赞
57
访问
102.5k
当指针作为参数传入函数时,是值传递而非引用传递!!!
定义时/值 p *p **p
int p;//变量 int变量 int *p;//一重指针 int变量的地址 int变量 int **p;//二重指针 int变量的地址的这块内存的地址 int变量的地址 int变量 void function(int **p)//参数是一个二重指针 int变量的地址的这块内存的地址 int变量的地址 int变量
举个例子:
定义了函数:
void function(int **p)
大家可能会去想:呀,这个参数是个双指针,**p代表一个具体的int值,所以在使用的时候,可能会以为这样使用:
int a=10; function(a);
错!
因为在定义时,**p代表这是一个双指针,这是一个地址的地址
而在使用时,**P才代表了指向变量本身的数值
再写简单一点:
int a=10; int *p=&a; int **pp=&p;
定义时:**pp=&p=指针p的地址
使用时:**pp=a=10;
这个虽然简单,但是在理解上会带来非常多的困难,切忌不能搞混,搞混了就回来看看!
#include <bits/stdc++.h>
using namespace std;
void test(int *b)
{
cout << "形参指针地址:" << &b << endl;
cout << "形参指向内容:" &...
登录后发布评论
赞