首页 > 其他分享 >15.C语言形式参数和实际参数的介绍及函数总结

15.C语言形式参数和实际参数的介绍及函数总结

时间:2024-07-27 21:27:50浏览次数:14  
标签:15 int float C语言 test return data2 data1 形式参数

形参和实参的介绍及函数总结

1.形式参数和实际参数

  • 实际参数可以是常量、变量、表达式

    y = get(1);//常量
    y = get(x);//变量
    y = get(x+1);//表达式
    
    
  • 形参和实参数值相同,地址不同(传递参数是数值的传递)。

    #include <stdio.h>
    
    //变量四要素:名,类型,值,地址
    int test(int x){//形式参数
    	printf("test的x地址是%p,数值是%d\n",&x,x);
    	return 0;
    }
    
    int main(){
    	int x;
    	int y;
    
    	puts("请输入一个数:");
    	scanf("%d",&x);
    	printf("main的x地址是%p,数值是%d\n",&x,x);
    	
    	y = test(x);//实际参数
    	return 0;
    }
    
  • 局部变量作用在所在变量的代码区域内

    全局变量作用在该文件夹内整个代码内

    #include <stdio.h>
    int O;//全局变量:这个文件内的代码区域都有效
    //变量四要素:名,类型,值,地址
    int test(int x){//形式参数:保存在栈,被调用的时候才会申请内存,调用结束后,内存自动释放
    	printf("test的x地址是%p,数值是%d\n",&x,x);
    	return 0;
    }
    
    int main(){
    	int x;
    	int y;
    
    	puts("请输入一个数:");
    	scanf("%d",&x);
    	printf("main的x地址是%p,数值是%d\n",&x,x);
    	
    	y = test(x);//实际参数
    	return 0;
    }
    
  • 三目运算符

    z = x>y?x:y;
    //x是否大于y
    //是:输出x
    //否:输出y
    

2.获取两个最大的数

  • 比较大小

    #include <stdio.h>
    
    int test(int x,int y){
    	int z;
    	if(x>z){
    		z = x;
    	}else{
    		z = y;
    	}
    }
    int main(){
    	//1.定义所需要的变量
    	int data1;
    	int data2;
    	int big;
    	
    	//2.提示输入
    	puts("请输入两个数");
    	
    	//3.输入两个数
    	scanf("%d%d",&data1,&data2);
    	
    	//4.函数调用
    	big = test(data1,data2);
    	
    	//5.输出结果			
    	printf("数据是:%d %d 最大的数:%d",data1,data2,big);
    	return 0;
    }
    
  • 两个浮点数的比较

    #include <stdio.h>  
      
    float test(float x, float y) {  
        float z;  
        if (x > y) {  
            z = x;  
        } else {  
            z = y;  
        }  
        return z; // 返回较大的数  
    }  
      
    int main() {  
        // 1. 定义所需要的变量  
        float data1;  
        float data2;  
        float big;  
          
        // 2. 提示输入  
        puts("请输入两个数");  
          
        // 3. 输入两个数  
        scanf("%f %f", &data1, &data2);  
          
        // 4. 函数调用  
        big = test(data1, data2); // 接收 test 函数的返回值  
          
        // 5. 输出结果  
        printf("数据是: %f %f 最大的数: %f", data1, data2, big);  
        return 0;  
    }
    

3.关于函数的一些总结

  • 说明

在这里插入图片描述

  • 举例子:

    1. 函数声明之前:会产生警告
    2. 函数声明之后:不会产生警告

    在这里插入图片描述

标签:15,int,float,C语言,test,return,data2,data1,形式参数
From: https://blog.csdn.net/weixin_52010671/article/details/140740987

相关文章

  • 15、flask-模型-models-表的操作-多表操作-一对多
    这里选择学生表和班级表作为案例app.pyfromAppimportcreate_appapp=create_app()if__name__=='__main__':app.run(debug=True)#运行:flaskrun--debugviews.pyimportrandomfromflaskimportBlueprint,request,render_templatefrom.modelsimpo......
  • 力扣-415-字符串相加
    思路是模拟从低位到高位的按位相加,需要考虑进位publicStringaddStrings(Stringnum1,Stringnum2){intbitLen1=num1.length()-1,bitLen2=num2.length()-1;StringBuilderstringBuilder=newStringBuilder();intcarry=0;......
  • C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
    写在最前,一篇文章学会C语言指针顶级重要,学习C语言最重要的一部分-------指针第八章指针超详细讲解_指针变量_二维数组指针_指向字符串指针文章目录写在最前,一篇文章学会C语言指针第八章指针超详细讲解_指针变量_二维数组指针_指向字符串指针1.指针变量1.1指针变......
  • C语言的函数递归
    一、递归的意义所谓函数递归,就是在某个函数中再次调用这个函数本身,做到函数自己调用自己,这个就是函数的递归。而函数的递归主要是的作用是将一个本身比较复杂,并且步骤繁多的函数逐次的递归使其变得简单化,就比如剥笋:我们想要得到里面能吃的部分,就需要剥笋。而笋的皮有很多层,每......
  • 入门C语言Day18——break&continue&goto语句
    前面的博文中有提到do-while与for循环语句,其中的流程图中有break和continue这两个部分还没解释。所以今天先来解释一下break与continue语句。break和continue两个关键字都被运用在循环中。break的作用是永久的终止循环,只要break被执行,直接就会跳出循环,继续往后执行。......
  • 写一个函数返回参数二进制中1的个数(c语言)
    1.int一共有32位,我们要知道一个数取余2等于1(n%2==1),就可以得到二进制中1的个数.然后一个数除于2(n=n/2),就可以使32位向右一位(例如:5为101,5/2==2,2为10,)。方法1(不可以输入负数)//写一个函数返回参数二进制中1的个数//方法1intcount(intn,intz){ //当a为正数的 if(n>......
  • 调整奇数全部位于偶数前面(c语言)
    1.方法一:第一步先建一个arr,判断arr中的奇数(arr[i]%2!=0)和偶数(arr[i]%2==0)分别打印,先打印奇数,后打印偶数。//调整奇数全部位于偶数前面//方法一voidtest(int*arr,intsz){ inti=0; for(i=0;i<sz-1;i++) { if(arr[i]%2!=0) { printf("%d......
  • 简单的扫雷——基于C语言的控制台小游戏
    前言:  “将大象装进冰箱要几步?--打开冰箱,把大象放进去,关上冰箱。”  同样的,该扫雷游戏的编写过程也只需三步:逻辑梳理-代码实现-运行调试。本文将使用C语言来一步步剖析并完成扫雷这一案例。一.扫雷的游戏逻辑  该扫雷的游戏逻辑为:  1.生成棋盘,并布置数个......
  • 15、flask-模型-models-表的操作-分页paginate()
    paginate()的属性属性名说明items返回当前页的内容列表has_next是否还有下一页has_prev是否还有上一页next(error_out=False)返回下一页的pagination对象prev(error_out=False)返回上一页的Pagination对象page当前页的页码pages总页数per_p......
  • [RCTF2015]EasySQL 1
    目录题目分析源码分析注入位置正则过滤注入方式注入题目分析这道题目给源码了,但别人貌似都是黑盒做的,不管了,代码审计启动!源码分析注入位置注入的位置在changepwd.php<?phpsession_start();header("Content-Type:text/html;charset=UTF-8");require_on......