龙空技术网

嵌入式开发-C语言-函数的参数传递

知识就是力量365 241

前言:

此刻咱们对“c语言参数传递过程”大约比较注重,你们都想要分析一些“c语言参数传递过程”的相关知识。那么小编在网摘上网罗了一些有关“c语言参数传递过程””的相关知识,希望咱们能喜欢,朋友们一起来了解一下吧!

1、函数的参数传递

传递方式

函数之间的参数传递方式:全局变量(不建议使)-全局变量变是在函数体外说明的变量,它在程序中的每个函数里都是可见的-全局变量一经定义后就会在程序的任何地方可见,函数调用位置不同,程序的执行结果可能会受影响,不建议使用。值传递方式-调用函数将实参传递给被调用的函数,被调用函数将创建同类型的形参并用实参初始化-形参是新开辟的存储空间,因此,在函数中变形参的值,不会影响到实参。地址传递方式(建议使用)-按地址传递,实参为变量的地址,而形参为同类型的指针-被调用函数中对形参的操作,将直接改就实参的值,(被调用函数对指针的目标操作相当于对实参本体的操作)例: x和y交换#include <stdio.h>void swap (int *x,int *y){    int t;    t =*x;    *x =*y;    *y=t;}int main(){    int a=10;    int b=20;    swap(&a,&b);    printf("x=%d y=%d\n",a,b);    return 0;}输出:x=20 y=10

程序实例:

编写一个函数,统计字符串中小写字母的个数,并把字符串中的小写字母转化为大转字母#include <stdio.h>int str_fun (char * p){    int num=0;    while(*p){ //*p!='\0'            if(*p <='z'&&*p>='a'){                    *p-=32;                    num++;            }            p++;    }    return num;}int main(){    char s[]="fafsfe12f45ef15ew5e5f1ew51";    int n = str_fun(s);    printf("%d %s\n",n,s);    return 0;}执行输出: 15 FAFSFE12F45EF15EW5E5F1EW51
总结
函数的参数传递,包括全局变量、值传递和地址传递三种方式
思考
值传递和地址传递有什么区别?如何编程可以实现地址传递方式也不能改变实参?

标签: #c语言参数传递过程