struct的成员如何在函数的参数里引用
发布网友
发布时间:2022-04-24 12:55
我来回答
共3个回答
热心网友
时间:2023-10-13 13:21
void function(example &t_ex, int i_val)
{
if ('a' == i_val)
t_ex.a = a;
else if ('b' == i_val)
t_ex.b = b;
else
assert(FALSE);
}
//test
int main()
{
example t_ex;
function(t_ex, 'a');
retrun 0;
}
热心网友
时间:2023-10-13 13:21
function(example ex,?? x){
if(x为a){
ex.a=a;
} else if (x为b) {
ex.b=b;
}
}
热心网友
时间:2023-10-13 13:22
1、指针函数
指针函数本质是一个函数,函数返回类型是某一类型的指针。
定义格式 :函数类型 * 函数名( 参数列表)
例: int * func1 (x, y ) 返回值为 整型类型指针的函数
char * func2 (x, y ) 返回值为 字符类型指针的函数
这里 func1(x, y ) 和func2(x,y)都是函数。调用时直接写func1(),不用加 *,而且不能把一个指针赋给此函数func1或func2;
例:
#include "stdio.h"
char *func(char *str1,char *str2)
{
int i;char *p;p=str2
if(*str2==NULL) exit(-1);
do{
*str2=*str1;
str1++;
str2++;
}while(*str1!=NULL);
return(p);
}
main()
{ char str1[]="hello world!";
char str2[]="Welcom to study C!";
printf("%s",func(str1,str2)); //func(str1,str2))是指针
}
2、函数指针
函数类型 (*指针变量名)(形参列表);第一个括号一定不能少。
“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少。
注意指针函数与函数指针表示方法的不同,千万不要混淆。最简单的辨别方式就是看函数名前面的指针*号有没有被括号()包含,如果被包含就是函数指针,反之则是指针函数。
例 int F();//声明一个函数;
int (*P)() ;// 声明函数指针
main()
{ P=F;
(*P)();//调用函数
}