C 函数引用参数传递Error——存在正文时不允许未命名的原型参数

C 函数引用参数传递Error——存在正文时不允许未命名的原型参数

C 函数引用参数传递error
问题描述:
  在test.c中,定义函数并为函数传引用参数,代码如下:

void test(int& a){
//....
a = 666;
}
1
2
3
4
  结果在定义时IDE便提示error:
  1、请输入")" C/C++(18)
  2、存在正文时不允许未命名的原型参数 C/C++(141)

原因分析:
  .c文件为纯C语言,不支持引用。

解决方案:
  1、将*.c文件重命名为*.cpp文件。
  2、将引用传参改为指针传参,即:

void test(int* a){
//....
*a = 666;
}
1
2
3
4
  关于C函数参数传递方式总结如下:
  (1)传值,就是把你的变量的值传递给函数的形式参数,实际就是用变量的值来新生成一个形式参数,因而在函数里对形参的改变不会影响到函数外的变量的值。
  (2)传址,就是传变量的地址赋给函数里形式参数的指针,使指针指向真实的变量的地址,因为对指针所指地址的内容的改变能反映到函数外,也就是能改变函数外的变量的值。
  (3)传引用,实际是通过指针来实现的,能达到使用的效果如传址,可是使用方式如传值。
  说几点建议:如果传值的话,会生成新的对象,花费时间和空间,而在退出函数的时候,又会销毁该对象,花费时间和空间。
  示例如下(test.cpp):

#include<stdio.h>
void change(int*a, int&b, int c)
{
c=*a;
b=30;
*a=20;
}
int main ( )
{
int a=10, b=20, c=30;
change(&a,b,c);
printf("%d,%d,%d",a,b,c);
return 0;
}
//结果:20 30 30
————————————————
版权声明:本文为CSDN博主「MCNS_37」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35308053/article/details/116207373

 

posted @   菜鸡一枚  阅读(886)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
历史上的今天:
2015-09-13 15 Most Read Data Science Articles in 2015. So far …
2015-09-13 读博士需要处理的五个问题
点击右上角即可分享
微信分享提示