参数与指针

一个函数仅实现一个功能,

实参与形参:

//实参与形参
#include<stdio.h>
int sum(int x ,int y){
	return(x+y);
}
int main(){
	int a=sum(3,5);
	printf("%d",a);
} 

传值与传址:

#include<stdio.h>
void swap(int x,int y);
void swap(int x,int y){
	printf("互换前:%d %d 
",x,y);
	int tmp;
	tmp=x;
	x=y;
	y=tmp;
	printf("互换后:%d %d
",x,y);
}
int main(){
	int x=3,y=5;
	swap(3,5);
	printf("in main中%d %d",x,y);
} 
#include<stdio.h>
void swap(int *x,int *y);
void swap(int *x,int *y){
	printf("互换前:%d %d 
",*x,*y);
	int tmp;
	tmp=*x;
	*x=*y;
	*y=tmp;
	printf("互换后:%d %d
",*x,*y);
}
int main(){
	int x=3,y=5;
	swap(&x,&y);
	printf("in main中%d %d",x,y);
} 

 传数组:

#include<stdio.h>
void get_array(int a[4]){
	for(int i=0;i<4;i++){
		printf("%d ",a[i]);
	}
	printf("
");
	a[1]=12;
	for(int i=0;i<4;i++){
		printf("%d ",a[i]);
	}
	printf("
");
}
int main(){
int a[4]={1,2,3,4};
get_array(a);
for(int i=0;i<4;i++){
		printf("%d ",a[i]);
	}
return 0;
} 

 可变参数;#include<stdarg.h>

#include <stdio.h>
#include <stdarg.h>

int sum(int n, ...);

int sum(int n, ...)
{
	int i, sum = 0;
	va_list vap;//定义一个字符指针的类型
	va_start(vap, n);//
	for (i = 0; i < n; i++)
	{
		sum += va_arg(vap, int);
	}
	va_end(vap);

	return sum;
}

int main()
{
	int result;

	result = sum(3, 1, 2, 3);
	printf("result1 = %d
", result);

	result = sum(5, 1, 2, 3, 4, 5);
	printf("result2 = %d
", result);
	

	result = sum(6, 3, -1, -2, 4, 99, 100);
	printf("result3 = %d
", result);

	return 0;
}

  

原文地址:https://www.cnblogs.com/helloworld2019/p/11141453.html