C语言参数传递,该怎么处理

C语言参数传递
#include <stdio.h>
#include <stdlib.h>

void abc(int e)
{
  e = 123;
}

main()
{
   auto e=456;
   abc(e);
   printf("%d",e);
}

这个程序我想输出的最终结果是123,请问怎么修改,谢谢!
------解决思路----------------------

#include <stdio.h>
int abc(int e);
int main(void)
{
    int e = 456;
    
    e = abc(e);
    printf("%d", e);
}
int abc(int e)
{
    int e = 123;
    return e;
}

------解决思路----------------------
int abc(int &e);
------解决思路----------------------
  printf("123");
------解决思路----------------------
#include <stdio.h>
#include <stdlib.h>

void abc(int *e)
{
  *e = 123;
}

main()
{
   auto e=456;
   abc(&e);
   printf("%d",e);
}


------解决思路----------------------
C++还是C 



引用:
#include <stdio.h>
#include <stdlib.h>

void abc(int *e)
{
  *e = 123;
}

main()
{
   auto e=456;
   abc(&e);
   printf("%d",e);
}

++
赵老师这个就是
C++
#include <stdio.h>
#include <stdlib.h>

void abc(int &e)//改成引用传递

   e = 123;
}

main()
{
   auto e=456;
   abc(e); //引用传递的调用方式和值传递相同
   printf("%d",e);
}


------解决思路----------------------
对源代码后缀为.cpp的文件,才默认用C++语法编译。
------解决思路----------------------
要想改变实参的值,必须把实参的指针地址作为函数参数传过去,而不是单单将值传过去。否则实参不会改变。