指针和函数

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

//值传递:形参不影响实参的值(使用变量、常量、数组元素作为函数参数)

void swap01(int a,int b)

{

  int temp=a;

  a=b;

  b=temp;

}

//地址传递:形参可以改变实参的值;(使用数组名或指针作为函数参数)

void swap(int*a,int*b)

{

  int temp=*a;

  *a=*b;

  *b=temp;

}

int main()

{

  int a=10;

  int b=20;

//值传递的特点是单向传递,即主调函数调用时给形参分配存储单元,把实参的值传递给形参;调用结束时,形参的存储单元被释放,且形参的值不能返回给主调函数

  //swap(a,b)//10,20

/*地址传递:地址传递传递的是数组首地址或指针的值,而形参接收到的是地址,即指向实参的存储单元,形参和实参占用相同的存储单元。形参不存在存储空间,数组名或指针就是一组连续空间的首地址。数组名或指针作函数参数时,传送的是地址传送,形参取得首地址后,与实参拥有一段内存空间*/



  swap(&a,&b);//20,10

  printf("%d ",a);

  printf("%d ",b);   

  return EXIT_SUCCESS;

  

}

原文地址:https://www.cnblogs.com/wanghong19991213/p/13569353.html