关于C语言编译‘&’时发生的错误...

本文解析了一个关于C语言中尝试使用引用传递方式实现数值交换的编译错误,并给出了正确的修改方案。作者指出,在C语言中应当使用指针而非引用,并提供了修正后的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

编译:

void swap(double &a,double &b)

 

报错:

expected ‘;’, ‘,’ or ‘)’ before ‘&’ token

 

 

原因:

在C语言里没有C++所谓的“按引用传递”,即Exchg3(int &x, int &y)应改为Exchg3(int *x, int *y)然后再这样调用Exchg3(&a, &b)就不会出错了,当然前提是你得把Exchg3(int *x, int *y)修改正确了

 

 

### 回答1: "b'c\xe8\xaf\xad\xe8\xa8\x80expected declaration'" 是一个编程错误提示,意思是在程序中需要一个声明语句却没有找到。这通常表示语法错误或缺失代码。需要检查代码并填补缺失的声明语句。 ### 回答2: “Expected declaration” 是C语言的一种编译错误,通常是由于代码中出现了一些语法错误导致的。这个错误提示意味着编译器在代码的这一行或前面的行中期望看到一个声明语句,但实际上出现了其他语法结构。 声明语句是C语言中非常重要的语法结构,它用于告诉编译器变量或函数的类型和名称等信息。例如,变量声明通常包括数据类型、变量名和可选的初始值。函数声明包括返回类型、函数名和参数列表。如果一个变量或函数没有被声明,编译器就无法知道它们的类型和名称,也就无法正确地解析代码。 以下是一些常见的导致“Expected declaration”错误的原因: 1. 变量或函数声明语句出现语法错误。例如,缺失分号、拼写错误、参数个数不匹配等。 2. 变量或函数声明语句出现在不合适的位置。例如,在函数体内部、在一个if语句中间、在一个没有大括号的代码块中等。 3. 代码中出现了一些其他语法结构,例如表达式、赋值语句、条件语句等。 为了解决“Expected declaration”错误,我们需要仔细检查代码中的声明语句,并确保其语法正确并且出现在合适的位置。同,我们也需要注意代码中的其他语法结构,确保它们的使用方法正确。如果我们无法发现错误,可以尝试向编译器传递更详细的调试信息,例如启用-Wall选项来显示所有的警告信息。 ### 回答3: "Expected declaration" 是 C 语言中一个常见的错误提示信息,通常出现在编写函数或变量"Expected declaration" 的意思是 "预期声明",提示在此处应该有一个声明,但是没有找到。 造成 "expected declaration" 的错误的原因很多,以下列出几种可能的情况: 1. 函数体没有加花括号 例如以下代码: int add(int a, int b) return a+b; } 编译器在识别到 "return" 关键字,会提示 "expected declaration",因为函数声明没有正确结束。 正确的代码应该是: int add(int a, int b) { return a+b; } 2. 变量名称没有在定义初始化 例如以下代码: int a, b, c = a + b; 编译器在识别到 "=" 符号,会提示 "expected declaration",因为它预期在此处应该有一个声明,但是没有找到。 正确的代码应该是: int a = 1, b = 2, c = a + b; 3. 在函数内部使用代码块但未包含花括号 例如以下代码: void print(int a) { if (a > 0) printf("a is positive"); else printf("a is negative"); } 编译器在识别到 "if" 关键字,会提示 "expected declaration",因为缺少代码块的花括号。 正确的代码应该是: void print(int a) { if (a > 0) { printf("a is positive"); } else { printf("a is negative"); } } 4. 引用头文件文件名错误 例如以下代码: #include "iostream.h" 编译器在找不到头文件,会提示 "expected declaration",因为它预期在此处应该有一个声明,但是找到的是一个无效的文件名。 正确的代码应该是: #include <iostream.h> 总之,"expected declaration" 错误提示通常是由于代码书写不规范或语法错误导致的。建议细心检查代码,确认变量,函数和文件是否正确声明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值