初学指针,如何讲指针与函数联合起来使用?
1.格式
定义函数的形参的时候要带有符号*,比如void a(int *p);
而在主函数中运用该函数的时候,就不需要带*号了,只要写入指针变量的名称即可,如a(p);【有点类似于数组在函数中的使用】
2.底层原理
指针存储的是一个变量的位置,当指针在函数中传递的时候,实际上是将该变量的地址拷贝以后赋值给形参(按值传递),也就是说,如果我改变了形参的指向,不会影响原函数中的实参指向,但是,在函数中运用运算符*可以找到该变量的位置并进行修改,有点类似于按引用传递,但其实不是,下面举了一个简单的例子,具体怎么用一目了然。
#include <iostream>
using namespace std;
void a(int* p)
{
*p += 1;//指针作参数时传递的是位置的拷贝,对实参指针的指向是不会有改变的,但是对
}
int main()
{
int b = 2;
int* h = &b;
a(h);
cout << *h;
return 0;
}