精华内容
下载资源
问答
  • 主要介绍了C语言中形参和实参详解及实例代码的相关资料,需要的朋友可以参考下
  • C语言中形参和实参详解及实例代码形式参数和实际参数函数的参数分为形参和实参两种。本小节,进一步介绍形参、实参的特点和两者的关系。形参出现函数定义整个函数体内都可以使用,离开该函数则不能使用...

    C语言中形参和实参详解及实例代码

    形式参数和实际参数

    函数的参数分为形参和实参两种。在本小节中,进一步介绍形参、实参的特点和两者的关系。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。

    函数的形参和实参具有以下特点:

    1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。

    2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。

    3.实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。

    4.函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。

    【例】可以说明这个问题。

    ">#include

    int add(int num)

    {

    int i;

    for(i=0;i<100;i++)

    {

    num=num+i;

    }

    printf("num=%d\n",num);

    }

    int main()

    {

    int num;

    printf("输入一个数\n");

    scanf("%d",&num);

    add(num);

    printf("n=%d\n",num);

    return 0;

    }

    本程序中定义了一个函数add,该函数的功能是求num+i的累加值。在主函数中输入num值,并作为实参,在调用时传送给add函数的形参量nuum。在主函数中用printf语句输出一次n值,这个num值是实参num的值。在函数add中也用printf语句输出了一次n值,这个num值是形参最后取得的n值0。从运行情况看,输入num值为6。即实参num的值为6。把此值传给函数add时,形参num的初值也为6,在执行函数过程中,形参num的值变为4956。返回主函数之后,输出实参num的值仍为6。可见实参的值不随形参的变化而变化。

    感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    时间: 2017-05-19

    6b5aa0751a6f1e6a9d0b665a02cc1f46.gif

    C语言/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,和time()函数. 需要说明的是,iostream头文件中就有srand函数的定义,不需要再额外引入stdlib.h;而使用time()函数需要引入ctime头文件. 使用rand()函数获取一个随机数如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间.RAND_MAX定义在stdlib.h, 其值为2147483647. 例子

    1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1

    指向结构体类型变量的使用首先让我们定义结构体:struct stu{char name[20];long number;float score[4];} ;再定义指向结构体类型变量的指针变量:struct stu *p1, *p2 ;定义指针变量p 1.p 2,分别指向结构体类型变量.引用形式为:指针变量→成员:[例7-2] 对指向结构体类型变量的正确使用.输入一个结构体类型变量的成员,并输出. 复制代码 代码如下: #include /*使用m a l l o c (

    1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理:若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' ). 2.字符数组与字符串在c语言中,将字符串作为字符数组来处理.(c++中不是)在实际应用

    fopen(打开文件)相关函数 open,fclose表头文件 #include定义函数 FILE * fopen(const char * path,const char * mode);函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态.mode有下列几种形态字符串:r 打开只读文件,该文件必须存在.r+ 打开可读写的文件,该文件必须存在.w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失.若文件不存在则建立该文件.w

    每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖! C语言运算符优先级 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成员选择(对象) 对象.成员名 -- -> 成员选择(指针) 对象指针->成员名 -- 2 - 负号运算符 -表达式 右到左 单目运算符 ~ 按位取反运算符 ~表达式 ++ 自增运算符 +

    [程序1]题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 2.程序源代码: 复制代码 代码如下: #include "stdio.h"#include "conio.h"main(){  int i,j,k;  printf("\n");  for(i=1;i<5;i++) /*以下为三重循环*/

    总在写 总在错, 面试也还忘记 学习就是这么个过程, 温故才知新, 望自己谨记 忘记不要紧 复习就好 //排序是有很多种方法的 ,完成从小到大的排列 复制代码 代码如下: #include void sort(int *a,int len){int i=0; int j; int t;    for(i=0;ia[

    记得以前在大学里学习c语言的时候,刚开始是很吃力的. 入门级别的算法中有个叫冒泡排序法,也有称为气泡排序法.那时候刚接触它就对它的名字特别感兴趣,因为觉得很有意思.好了,废话不多说了,我们先一起简单回忆下这个冒泡排序法. 一.打印行和列一般是这样的一个简单代码,输出4行4列*: for(int i = 1,i < 5,i++){ for(int j = 1,j < 5,j++){ printf("*"); } printf("n\"); } 二.打印&q

    任务代码: 数字的排序: #include #define SIZE 10 int main() { int a[SIZE]={12 ,43,9,13,67,98,101,89,3,35};//十个数的无序数列 int i,j,t; printf("此程序使用冒泡排序法排列无序数列!\n"); //冒泡排序 for(i=0;i<10-1;i++)//n个数的数列总共扫描n-1次 { for(j=0;j<10-i-1;j++)//每一趟扫描到a

    前几天遇到的一道关于算法的考题,要求用PHP语言实现对一个数组进行排序,我写了一个采用冒泡排序法的函数,和大家分享一下. //冒泡排序法 function bubble_sort($array) { $count = count($array); if($count <= 0) { return false; } for($i=0; $i$i; $k--) { if($array[$k] < $a

    很基础的东西,感觉代码还不够简洁,希望高手指导修改 复制代码 代码如下: <?php function BubbleSort($str){ for($i=0;$i=$i;$k--){//将这个值向前冒泡: if($str[$k+1]

    a5d5cbb83c8f811335a1f61526fc080b.png

    本文实例讲述了JavaScript实现的冒泡排序法及统计相邻数交换次数.分享给大家供大家参考,具体如下:

    JS冒泡排序
    展开全文
  • 不可以,因为调用函数时需要对形参分配内存空间以用于接收实参传递的值,所以形参不可以是表达式,也不能形参处对其赋值,比如 int result(int a=3)是不可以的。 但是实参可以是表达式。 (摘自百度知道) ...

    不可以,因为在调用函数时需要对形参分配内存空间以用于接收实参传递的值,所以形参不可以是表达式,也不能在形参处对其赋值,比如 int result(int a=3)是不可以的。
    但是实参可以是表达式。
    (摘自百度知道)

    展开全文
  • Linux C语言中形参传递

    2018-01-05 16:03:16
    我们编程时经常会遇到这样的情况,需要编写一个函数,需要该函数能够返回传递一个大字符串,如果直接返回该字符串不是不可以,但是这样不是很符合规范,比如我们还需要返回一个Int型来判断是否成功,这里就对C语言...

    我们在编程时经常会遇到这样的情况,需要编写一个函数,需要该函数能够返回传递一个大字符串,如果直接返回该字符串不是不可以,但是这样不是很符合规范,比如我们还需要返回一个Int型来判断是否成功,这里就对C语言中形参的传递进行总结。

    0x01 int型形参传递

    整形参数传递很简单,可以直接使用,比如:

    使用指针:
    #include <stdio.h>
    int test(int *a){
    	*a=10;
    	return 0;
    }
    int main(){
    	int a=100;
    	test(&a);
    	printf("%d",a);
    }

    将a的地址传入test函数,这样a相当于一个指针,test函数更改a指针指向的内容,从而完成a值得修改。

    使用数组:

    #include <stdio.h>
    int test(int *a){
    	a[0]=1;
    	return 0;
    }
    int main(){
    	int a[10];
    	a[0]=100;
    	test(a);
    	printf("%d",a[0]);
    }
    使用数组就更容易理解,在主函数中直接分配内存空间,然后再test函数中对该空间进行赋值操作,从而完成值得修改。

    0x02 char型形参传递

    字符型传参就指针来说麻烦了些,不过如果使用数组跟上述整型同样的道理。

    使用数组:

    #include <stdio.h>
    #include <string.h>
    int test(char *a){
    	strcpy(a,"test");
    	return 0;
    }
    int main(){
    	char a[100];
    	test(a);
    	printf("%s",a);
    }
    使用一级指针:

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    int test(char *a){
    	strcpy(a,"test");
    	return 0;
    }
    int main(){
    	char *a=(char *)malloc(sizeof(char)*100);
    	test(a);
    	printf("%s",a);
    	free(a);
    }
    
    这里虽然可以正常复制,但他的原理跟数组类似,也是预先分配内存空间,然后向test函数中传入地址完成赋值,这里的赋值操作要用strcpy。

    但是这两种传递方式容易出现一个问题,就是我们需要提前预估此字符串的大小,为其分配合适的内存空间。

    使用二级指针:

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    int test(char **a){
    	char *p="return!!!!!!!!";
    	*a=p;
    	return 0;
    }
    int main(){
    	char *a;
    	test(&a);
    	printf("%s",a);
    }

    使用二级指针传递参数,*p依旧是个指针,*a也是个指针,两者可以直接画等号。这种方式比较少见,但是他可以自使用分配内存空间,不需要预先估计空间大小。

    展开全文
  • 在C语言中,形参的缺省存储类别是().形组成细胞核的主要化学成分是()参的存储气体一等径管中等温稳定流动,现进出口压力不同,气体进出口处的密度发生变化,从而进出口处气体的质量流速也不同。缺省流体阻力的大小与...

    在C语言中,形参的缺省存储类别是().

    中形组成细胞核的主要化学成分是()

    参的存储气体在一等径管中等温稳定流动,现进出口压力不同,气体进出口处的密度发生变化,从而进出口处气体的质量流速也不同。

    缺省流体阻力的大小与管长成正比,与管径成反比。

    851975.jpg

    类别流体阻力的大小只取决于流体的黏性。

    若将同一转速的同一型号离心泵分别装在一条阻力很大、中形一条阻力很小的管路中进行性能测量,其测出泵的性能曲线就不一样。

    参的存储输送液体的密度越大,泵的扬程越小。

    缺省往复泵的流量随扬程增加而减少。

    类别气体的黏度随温度的升高而升高,而液体的黏度随温度的降低而升高。

    液体的相对密度是指某液体在一定温度下的密度与277K、中形标准大气压下纯水的密度之比。

    离心泵性能的标定条件是( D)

    参的存储相对密度为1.5的液体密度为1500kg/m3。

    用皮托管来测量气体流速时,其测出来的流速是指( )。

    缺省水在一条等径垂直管内作向下定态连续流动时,其流速( )。

    类别在同等条件下,泵效率有可能最高的是以下( )。

    中形孔板流量计是( )式流量计。

    参的存储离心泵输送介质密度改变,随着变化的参数是( )。

    缺省某设备压力表示值为0.8MPa,则此设备内的绝对压力是( )。(注:当地大气压为100kPa)

    有一段由大管和小管串联的管路,管内液体作连续稳定的流动,大管内径为D,而小管内径为D/2,大管内液体的流速为u,则小管内液体的流速为( )。

    确定设备相对位置高度的是( )。

    展开全文
  • c语言中形参与实参的关系 形参是实参的值得副本,实参到形参传值是单向的。例如:main( )函数定义的a,b无法通过调用swap( a, b)函数交换a,b的值。 如果参数类型是指针类型,则可以通过对指针变量所指向的地址...
  • 【单选题】在C语言中以下不正确的说法是A. 实参可以是常量、变量、或表达式 B. 形参可以是常量、变量或表达式 C. 实参可以为任意类型 D. 形参应与其对应的实参类型一致更多相关问题()是调整商事关系的法律规范。18....
  • c语言中形参与实参

    2020-06-19 16:12:25
    主函数与子函数只是值的传输,传到子函数的值会存放一个新的空间。
  • 如题,C语言在函数间传递参数时,形参的变化是不会改变实参的值的!!!如:includevoid main(){void swap(int,int);int a,b;scanf("%d,%d",&a,&b);swap(a,b);}void swap(int a,int b){int temp;temp = a;a ...
  • 自己敲函数时想要自己建立一个子函数,子函数的作用是进行一些运算,它的形参是一个二维数组,数据类型是整型。返回值是个整数,我函数申明时写成了这样  int jisuan(int a[ ][ ]) 这是一种错误的写法,一般...
  • c语言中形参和实参的关系

    千次阅读 2014-02-20 17:12:16
    形参出现函数定义整个函数体内都可以使用, 离开该函数则不能使用。实参出现主调函数,进入被调函数后,实参变量也不能使用。 形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送...
  • c语言中形参和实参的区别?

    万次阅读 2014-07-04 11:26:37
    形参出现函数定义整个函数体内都可以使用,离开该函数则不能使用。实参出现主调函数,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被...
  • c语言数组形参

    2020-06-16 19:57:47
    在c语言中,如果数组作为参数传递,会退化为指针。 void testPara(int nums[]) { int len = sizeof(nums) / sizeof(int); printf("形参数组长度为%d\n", len); } int main() { int nums[] = {1,2,3,4,5}; int ...
  • 形参出现函数定义整个函数体内都可以使用,离开该函数则不能使用。实参出现主调函数,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被...
  • 这个过程,我们大多会给这个函数传递某些‘参数’,当我们定义被调用函数时,函数名后的括号( )即为我们传入的“形参”,函数可以函数体描述如何操作这些“形参”;同时,我们调用函数时,例如 fun(param1...
  • 主要介绍了c语言形参和实参传递的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 相关问题函数,函数,形参,程序,运行,速度,函数,,变量,形参,变量,形参,时,存储,空间,,说法,形参,实参,结构,数组,名,形参,结构,指针,地址,实参,形参,形参,对象,数据,类型,形参,错,声明,形式,函数,类型,运算符,形参,...
  • C语言形参与实参

    2021-02-04 18:14:04
    形参与实参 1.形参和实参是什么 2.形参和实参的区别 3.形参与实参知识点 3.1实参的值不随形参的变化而...今天我们来说下c语言形参与实参的区别,形参跟实参理解的话也很简单,但是好多同学关于这个知识点都是一知.
  • C语言中形参调用二维数组

    千次阅读 2012-11-07 22:23:49
    int(*a) [3]或者 int[][3]。 sizeof(void *),再32位系统下,占4个字节,所以sizeof(void *)=4。 二维数组再内存存放是连续的,所以也可以用一个指针变量访问二维数组。
  • 相信大家对于‘&’运算符并不陌生,我们主要将他用于取参数...赋值上会有些差别,指针赋值以 *p=x 或 p=&x 的形式赋值,而形参如果为char &p的话,只能以 p=x 的形式赋值。 第一次写博客,如有不周,请多指教。
  • C语言形参和实参1).定义形参:形式参数。就是定义函数的时候,写函数名小括号后面的参数叫形参实参:实际参数。就是调用函数的时候,调用函数时写函数名小括号后面的参数就叫实参2).注意项a.实参既可以放常量...
  • C语言指针形参与实参

    2020-04-06 16:19:51
    在形参导致其实参改变即为其传递时进行的是双向的值传递,就是说函数进行两个变量之间的交换的时候是值交换,而不是指针指向的地址交换。例如: int main() { int i=8,j=9; int *p,*q; p=i;//将i的地址赋给...
  • 这个问题其实很常见,尤其是一些 API 函数里。有时候想传递用户自定义类型的时候会经常有这个 void * 类型参数供用户使用。可实际怎么使用估计很多人一开始搞了半天不是提示编译错误就是编译错误。 下面还是用个...
  • c语言中形参与实参: 形参 form parameter 实参 real parameter 出现函数定义的参数,就叫形参 出现函数调用的参数,就叫实参 函数定义: int max( int a , int b ) //这里的a,b就是形参 { //函数,...
  • C语言实参、形参、函数调用、指针、引用、*&符号实例实现环境:VC6程序源代码:#include "stdio.h"#include void fun1(int a) //传值调用{printf(" 形参a为:%d\n",a);a--;printf(" 形参a变为:%d\n",a);}void ...
  • 在C语言中关于形参和实参的传递分为两种:值传递和地址传递。地址传递又分为:参数为指针变量,参数为引用类型,参数为数组名。我们可以这样想实参的传递过程:将主函数所有参数(包括要调用的实参)作为地面上的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,451
精华内容 22,980
关键字:

在c语言中形参必须是

c语言 订阅