关于调用函数中的参数输出问题

来源:互联网 发布:房价知乎 编辑:程序博客网 时间:2024/05/21 14:58

总结:1、关于指针的在函数中的调用,一定要注意地址和常量的参数传递,第三种方法是经典,注意定义的格式问题。

           2、全局变量一旦定义,main函数和调用函数中直接用就可以,不需要重新定义,重新定义会使变成局部变量。

 

1.通常意义下我们想调用函数中的变量会选择return进行返回,但是实际上有的时候不止范围一个变量而是两个或者多个,或者是数组

void s(int x,int y){   int c,d;   c=x+y;   d=x*y;}void main(){    int a,b;    int c;int d;    scanf("%d,%d",&a,&b);    s(a,b);    printf("%d %d",c,d);}
此时会报错,c,d没有初始化


2.可以考虑使用全局变量

#include "stdio.h"int c=0;int d=0;         //定义全局变量void s(int x,int y){  //int c;int d;//调用函数中可以不进行初始化,但是此处一旦定义的话就变成了局部变量,虽然和全局变量同名,但是作用范围不同,局部变量只能在此函数中有意 义   c=x+y;   d=x*y;}void main(){   //int c=0;int d=0;如果在main函数中有定义intc,d的话程序debug会提示没有初始化要你初始化,但是一旦你在这初始化的,c,d又是局部变量,输出结果为0 0    int a,b;        scanf("%d%d",&a,&b);    s(a,b);    printf("%d %d",c,d);}

这样可以正确输出

3.当然万能的指针也是可以的。

#include "stdio.h"void s(int x,int y,int*p,int*q){//指针传值此处,调用函数中要传递数值变量,同时也要指针地址变量,这里必须是int*x格式,几个地址几个指针定义   int c;int d;   // c=x+y;  // d=x*y;   //p=&c;   //q=&d;   *p=x+y;   *q=x*y;}void main(){       int a,b;  int _a,_b;    scanf("%d%d",&a,&b);    s(a,b,&_a,&_b);//指针传的是地址,因此这里必须是&某个常量的地址.某个常量可以任意定义。    printf("%d %d",_a,_b);}



0 0
原创粉丝点击