C语言参数传递——实参与形参

在C语言中,关于形参与实参说明如下。

1) 形参是变量,但是函数被调用时才被分配内存。当函数执行完毕返回时,形参占用的内存空间又被释放。

2)实参可以是变量、常量和表达式,但实参必须有确定的值。

3)形参和实参的类型必须一致。

4)对应的实参和形参是两个独立实体,它们之间只有单向的值的传递,即实参的值传递给形参。形参的值在函数中不论怎么改变,都不会影响实参。

以上来自 C语言程序设计(第三版)/杨路明主编

个人观点:虽然在C语言中形参实参按值传递,但是按形参实参类型又可分为:值类型(数值类型、char型、struct及enum类型),引用类型(指针),这会影响参数传递是否会影响到原来的值。

原文地址:https://www.cnblogs.com/reddercell/p/12168851.html

时间: 2024-11-09 10:26:11

C语言参数传递——实参与形参的相关文章

c语言函数实参与形参整理

C语言学习笔记 (003) - C/C++中的实参和形参(转)

今天突然看到一道关于形参和实参的题,我居然不求甚解.藐视过去在我的脑海里只有一个参数的概念,对于形参和实参的区别还真的不知道,作为学习了几年C++的人来说,真的深深感觉对不起自己对不起C++老师  T.T 我觉得只要明白了值传递和地址传递,就应该能明白形参和实参的具体工作细节了. 1.值传递 实参是变量,表达式等值. find(int x){} y= find(z): 上面的例子中,z是实参,x是形参.x变z不变. 在值传递过程中,实参和形参位于内存中两个不同地址中,实参先自己复制一次拷贝,再把

C语言参数传递(值传递、地址传递)+二级指针

参数传递 C语言参数传递一般分为:值传递和地址传递 (注意:C语言中没有引用传递,C++才有引用传递,因为很多C语言环境是用C++编译器编译,使得C看起来支持引用传递,导致很多网上很多blog都把引用传递归为C语言参数传递的一类, 当使用Microsoft Visual C++ 2010 Express或VC6之类的编译器时使用引用传递就无法编译通过) 值传递: 形参是实参的拷贝,改变形参的值并不会影响外部实参的值.从被调用函数的角度来说,值传递是单向的(实参->形参) 1 #include <

C语言参数传递

1 //--------------------单向值传递------------------------ 2 3 // swap这个方法在被调用时,给形参a,b分配了空间 4 // 主调函数将[数值]传递给[形参] 5 // 形参完成操作之后并不能将值传回给主调函数 6 // 形参的生命周期仅仅在方法体中 7 /* void swap(int a , int b) 8 { 9 int tmp = a; 10 a = b; 11 b = tmp; 12 }*/ 13 //------------

Java实参和形参与传值和传引用

实参和形参的定义: 形参出现函数定义中,在整个函数体内都可以使用,离开函数则不能使用. 实参出现在主函数中,进入被调函数后,实参变量也不能使用. 形参和实参的功能是做数据传送.发生函数调用时,主调函数把实参的值传送给被调函数的形参从而向被调函数传送数据. 实参和形参的区别: 1.形参变量只有在被调用时才分配内存单元,在调用结束后,立即释放所分配的内存单元.因此,形参只有在函数内部有效.函数调用结束返回主调函数后则不能在使用该形参变量. 2.实参可以变量.函数.数组等.无论实参是何种类型的,在进行

C/C++中的实参和形参

C/C++中的实参和形参 今天突然看到一道关于形参和实参的题,我居然不求甚解.藐视过去在我的脑海里只有一个参数的概念,对于形参和实参的区别还真的不知道,作为学习了几年C++的人来说,真的深深感觉对不起自己对不起C++老师  T.T 我觉得只要明白了值传递和地址传递,就应该能明白形参和实参的具体工作细节了. 1.值传递 实参是变量,表达式等值. find(int x){} y= find(z): 上面的例子中,z是实参,x是形参.x变z不变. 在值传递过程中,实参和形参位于内存中两个不同地址中,实

JavaScript函数遇实参与形参——智能而有原则

1.实参与形参个数可以有偏差,不会因为参数不统一而错误. 例1: functionbox(a,b){ return a + b; } alert(box(1,3,5)); //运行结果:"4". //进行的运算为"1+3",没有用到"5". 例2: functionbox(a,b,c){ return a + b+c; } alert(box(1,'5')); //运行结果:15undefined. //结果为sring类型.进行的运算1与'5'

编程题:指针变量,实参与形参的引用。已知一个一维数组,求其中前n个数的和。n由键盘输入。

#include<stdio.h> int sum(int *q,int n) { int i,s=0; for(i=0;i<n;i++,q++) s+=*q; return s; } void main() { int num,a[10]={1,2,3,4,5,6,7,8,9,10}; int *p=a; scanf("%d",&num); printf("%d\n",sum(p,num)); } 编程题:指针变量,实参与形参的引用.已知

函数实参和形参

The terms parameter and argument are sometimes loosly used interchangeably, and the context is used to distinguish the meaning. The terms parameter(sometimes called formal paramter) is often used to refer to the variable as found in the function defi