`
Phynix
  • 浏览: 11676 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
社区版块
存档分类
最新评论

原来C语言是不支持引用传递的

阅读更多
写了个结构体的小测试,个结果发现C语言是不支持按址传递的


#include<stdio.h>
#include<stdlib.h>

typedef struct Str{
  int i;
  int j;
}str;

int giveinfo(str &str);
int main(){
  str str;
  giveinfo(str);
  str.i = 89;
  printf("%d\n",str.i);
  printf("%d\n",str.j);
  return 0;
}

int giveinfo(str &str){
  str.i = 9;
  str.j = 20;
  return 0;
}




开始我用gcc编译 gcc -o struct struct.c
总是出现错误:
struct.c:9: 错误:expected ‘;’, ‘,’ or ‘)’ before ‘&’ token
struct.c:19: 错误:expected ‘;’, ‘,’ or ‘)’ before ‘&’ token

怎么改都不行,后来我就用g++编译就成功了。
分享到:
评论

相关推荐

    C语言函数参数的传递详解

    尽管C语言本身并不支持引用传递,但在C++中这是一个常用的功能。通过引用传递,我们可以直接修改原始变量的值。 ##### (1)引用传递的示例 在考题三中,我们使用C++风格的`Exchg3`函数来交换两个整型变量的值。...

    C语言函数参数传递过程教学方法研究.pdf

    这是因为C语言通过指针间接实现了类似引用传递的效果。当函数接收到一个参数时,实际上是接收到该参数值的一个副本,这个副本存储在函数的局部变量区(栈空间)中,原参数的值在函数内部无法直接修改。 文章详细...

    fortran与c语言接口参数传递混合编程.doc

    - **按引用传递**:这是最常见的参数传递方式,即传递的是参数的地址。大多数情况下,数组和结构体不能按值传递。 - **按值传递**:在某些特殊情况下,可以使用`%VAL(arg)`将参数按值从Fortran传递给C。同样地,如果...

    c语言的形参和实参传递的区别详解

    3. 引用传递(C++特性,C语言不支持): 在C++中,引用传递允许函数直接修改实参的值,而不创建副本。虽然C语言没有内置的引用概念,这里仅作为对比说明。引用传递使得形参如同是实参的别名,对形参的操作直接作用于...

    C语言函数大全超级完整版

    C语言支持两种参数传递方式:值传递和引用传递。值传递会创建形式参数的副本,对形式参数的修改不会影响到实际参数。而引用传递则是让形式参数成为实际参数的别名,对形式参数的改动会直接影响实际参数。 C语言函数...

    C语言函数调用

    虽然C语言本身不支持传引用,但C++中可以使用这种方式。与传址类似,传引用也允许在函数内部直接修改外部变量。 ### 总结 理解C语言中的函数调用机制,尤其是传值、传址和传引用的区别,对于编写高效、可维护的...

    c语言 TC201E c语言 TC201E c语言 TC201E

    2. **结构化编程**:C语言支持结构化编程,通过函数、循环和选择结构实现模块化程序设计。 3. **数据类型丰富**:C语言提供多种基本数据类型,如整型、浮点型、字符型等,并支持自定义结构体。 4. **指针操作**:...

    C语言基础知识:函数和参数传递.docx

    C语言的参数传递方式有三种:按值传递、按引用传递和按指针传递。默认情况下,C语言使用按值传递,如`changeValue`函数的例子所示,形参的修改不会影响实参。若要实现形参修改实参的效果,可以使用指针作为参数,如`...

    C语言函数(HTLM)

    3. **参数传递**:C语言支持两种参数传递方式——按值传递(value passing)和按引用传递(passing by reference)。按值传递意味着函数接收的是参数值的副本,对副本的修改不会影响原变量。而按引用传递则通过指针...

    C语言函数速查手册

    3. **参数传递**:C语言支持按值传递和按引用传递。按值传递时,函数内部无法改变实参的值;按引用传递(通过指针)则可以。 4. **函数指针**:C语言中的函数指针可以存储函数地址,使得可以将函数作为参数传递给...

    c语言函数(几乎所有的c语言函数)范例教程

    若要修改原变量,可以使用指针作为参数,实现按引用传递。 9. **main函数**: 每个C程序都有一个主函数 `main()`,它是程序执行的起点。返回值0通常表示程序正常结束,非零值表示异常。 10. **预处理器指令**: ...

    C语言常见问题大汇总

    5. **函数的调用与参数传递**:C语言支持值传递和地址传递两种方式。理解参数是如何在函数之间传递的,以及如何通过指针参数修改函数外部的变量,是掌握函数使用的要点。 6. **预处理器宏**:预处理器宏在C语言中...

    最有用的C语言讲义

    理解函数的参数传递机制(值传递与引用传递的区别)以及如何正确使用函数原型声明是编写有效C代码的关键。 内存管理是编写高质量C程序的另一个关键概念。在C语言中,程序员可以使用标准库函数如malloc和free进行...

    C语言基础 简单C语言应用程序

    C语言支持基本的数据类型如整型(int)、浮点型(float、double)、字符型(char)以及布尔型(通常用typedef定义)。理解这些数据类型及其内存占用、取值范围是学习C语言的第一步。 接下来是变量,它是存储数据的...

    C语言基础教程PPT

    4. **运算符与表达式**:C语言支持算术、关系、逻辑、位和赋值运算符。理解这些运算符的工作方式和优先级规则。 5. **流程控制语句**:包括条件语句(if, if...else, switch)、循环语句(for, while, do...while)...

    关于C语言中参数的传值问题

    3. **引用传递**:C++中引入了引用的概念,但在C语言中并没有直接支持引用传递。考题三中的`Exchg2`函数虽然使用了`&`符号,但这并不是C语言中的引用,而是C++中的特性。在C语言中,通常会通过指针实现类似引用的...

    C语言深度(C语言编程)

    7. **位运算**:C语言支持位级操作,这对于低级别的硬件控制和优化代码性能十分有用。理解位运算符(&、|、^、~、、&gt;&gt;)并能熟练运用,能增强编程能力。 8. **函数指针**:函数指针可以作为参数传递,也可以存储在...

    c语言技术this指针

    6. 在C语言中不存在this指针的概念,因为C语言是一种面向过程的编程语言,不支持类和对象。但在将C++程序翻译成C程序时,可以通过结构体和函数指针模拟类似的行为。 ```c // C语言中模拟C++中this指针的概念 struct...

Global site tag (gtag.js) - Google Analytics