#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
int func1(int *a)
{
a = new int;
*a = 1;
printf("func1 addr a=%p\n",a);
return *a;
}
int func2(int **a)
{
*a = new int;
**a = 10;
//如果是指针的指针,那函数内可以对指针的指针直接赋值
//那返回的地址就彻底悲剧了,函数外面的指向彻底乱了
//int i = 0,*b = 0;
//b = &i;
//对指针的指针直接赋值,有可能不这么直接,间接被修改
//a = &b;
printf("func2 addr a=%p,*a=%p\n",a,*a);
return **a;
}
//*&: 运算符*优先级高于&,两个运算符都是