请问为什么输出会是原值?可以仔细说说吗

img

我不理解的是,在func函数里已经改变了值,为什么输出还是原值。那如果exl.n.n是不是就是输出15

因为函数指定的是值参,值参是修改不了外部传入变量值的。
因为函数参数都会复制一份给函数使用,所以值参复制后就与传入变量完全是两个变量了,函数内修改的是函数内的复制品而已。

指针和引用才能修改结构体成员的值
引用举例:
void change(two& ex2, int n)
{
ex2.n= n;
}
指针举例:
oid change(two& ex2, int n)
{
ex2->n= n;

还望博主采纳