ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

函数传递的参数类型

2021-11-17 19:03:17  阅读:92  来源: 互联网

标签:函数 int void 传递 add num 参数 func id


传值(不改变实参的值)

  • 数值(整型、浮点型、字符) 作为参数(传数)
code
#include <stdio.h>
void func(int i);
int main(){
	int num = 100; 
	func(num);//num实参 
    printf("%d\n",num);//100 
	return 0;
}
void func(int i){//i形参 
	i = 200; 
}
  • 结构  作为参数(传结构)
code
#include <stdio.h>
struct Book{
   int id;
};
void func( struct Book book2 );
int main( ){
   struct Book book1;
   book1.id = 100;
   func( book1 );//传的是值,不是引用,不能改变其值 
   printf("%d\n",book1.id); //100
   return 0;
}
void func( struct Book book2 ){
   book2.id = 200;
}

传引用(改变实参的值)

  • 数值指针(整型、浮点型、字符)作为参数(传数)
code
#include <stdio.h>
void func(int *i);
int main(){
	int num = 100; 
	func(&num);//num实参 
    printf("%d\n",num);//200 
	return 0;
}
void func(int *i){//i形参 
	*i = 200; 
}
  • 数组名==指向数组的指针  作为参数(传数组)
code
#include <stdio.h>
void func(int i[]);//方式1 
//void func(int *i);//方式2 
int main(){
	int num[3] = {111,222,333}; 
	func(num);//num实参 
    printf("%d\n",num[1]);//666
	return 0;
}

//void func(int i[])
void func(int *i)
{//i形参 
	 i[1]=666;
}
  • 指向结构体的指针  作为参数(传结构体)
code
#include <stdio.h>
struct Book{
   int id;
};
void func( struct Book *book2 );
int main( ){
   struct Book book1;
   book1.id = 100;
   func( &book1 );//传的是值,不是引用,不能改变其值 
   printf("%d\n",book1.id); //200
   return 0;
}
void func( struct Book *book2 ){
   book2->id = 200;
}
  • 函数名作为参数(传函数)
code
#include <stdio.h>
void func(int n,void (* add)(int i));
void add_1(int i);//数值加1 
void add_2(int i);//数值加2 
int main(){
	int num = 100; 
	//func(num,add_2);//方式1 
	func(num,&add_2);// 方式2 
	return 0;
}
void func(int n,void (* add)(int i)){ 
	 // 会执行add_2 
	 //(*add)(n);//方式1
	 add(n);//方式1
} 
void add_1(int i){
	i += 1;
	printf("执行的是add_1函数,数值变为%d\n",i);//101 
} 
void add_2(int i){
	i += 2;
	printf("执行的是add_2函数,数值变为%d\n",i);//102 
}

 

标签:函数,int,void,传递,add,num,参数,func,id
来源: https://www.cnblogs.com/wj456jw/p/15568718.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有