@
ShineSmile 不好意思,才看到。举个 c 里面的例子
``c
struct S_YourStruct{
int age;
}
typedef struct S_YourStruct YourStruct;
void main()
{
YourStruct* p = (YourStruct*)malloc(sizeof(YourStruct ));
//不判断有没有申请成功了
memset(p,0,sizeof(YourStruct));
p->age = 11;
func(p);
}
void func(YourStruct * p)
{
p->age = 100; //这里修改也会在 main 中的 p 生效,因为指针都指向同一个对象
p = (YourStruct*)malloc(sizeof(YourStruct )); //修改了 p 指针的指向,但是 main 中的 p 没有受到影响,对于指针本身来讲,实际上是 [值传递] ,而并非 [引用传递] ,Java 里面也是同样的道理,本质上都是 [值传递] ,Java 同样的操作和这里的结果是一样的。
}
``