文章

18

粉丝

183

获赞

57

访问

101.7k

头像
【重要!】一文理解指针作为函数参数传递!看完不懂你打我
推荐阅读
C语言
发布于2022年8月8日 15:41
阅读数 6.8k

先说最重要的结论

当指针作为参数传入函数时,是值传递而非引用传递!!!

其次,不要把指针在定义时和使用时搞混!

定义时/值 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 << "形参指向内容:" &...
登录查看完整内容


登录后发布评论

1 条评论
admin SVIP
2022年8月8日 21:30

yes

赞(1)