189 8069 5689

c语言函数参数与结构体,c语言函数的一般结构

有关C语言中结构体变量做函数参数的问题

其实,结构名就是一个变量,由于你的形参和你的实参取名是一样的。而且对于形参肯定会变

网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了思南免费建站欢迎大家使用!

实参不会变。所以,你中间的maxA变量,其实是子函数的形参变了。但是你的实参没变

因此结果没变

改,对于子函数中,你在void Max_Element_Find(struct Max_Element* maxA,double *A,int n)

Max_Element_Find(maxA,A,n);这样就好了

C语言中,结构体作为函数参数传递,详解?

1.可以把结构体作为参数啊,

2.不去取地址的意思,是引用的意思,函数执行时修改L的值,就直接的修改了实参的值,相当于地址传递了。

3.真正调用的时,如下:

SqList

tempStruct;

InitList_Sq(tempStruct)

这样就可以了。

呵呵

关于c语言中的结构体数组作为函数参数传递的

1、结构体数组传给指针,实质上是不可能的,本质上传的是数组首地址,根据偏移来操作数组,这样看起来好像是真在操作数组一样。就和普通指针一样使用,只不过它是结构体数组。

2、例程:

typedef struct Student

{

char name[10] ;

int age ;

}Student;

#define LEN 10 

//print all Student infomation

void fun(Student *pStu,int len)

{

int i ; 

for(i = 0 ;i  len ;++i)

{

printf("%s\t%d",pStu[i].name,pStu[i].age) ;

}

}

int main ()

{

Student stu[LEN] ;

fun(stu,LEN) ;

}

c语言结构体做函数参数的问题

结构这么定义吧:

typedef struct student{

int num;

char name[50];

float s1;

float s2;

floats3;

}student,*pStu;

你原来那么定义只能存一个字符的姓名。

比如在main中,你可以定义一个struct student的数组。

pStu a = (pStu)malloc(5*sizeof(student));

然后传入指针

然后函数可以写为

int input(pStu ss, int length)//这里length是ss的长度,防止内存溢出。

int avag(pStu ss, int length)

下面是我写的input和main.你看一下吧。

#include stdlib.h

typedef struct student{

int num;

char name[50];

float s1;

float s2;

float s3;

}student,*pStu;

int input(pStu ss, int length)

{

int i = 0;

while ( i length )

{

printf("请输入学生%d的学号:",i);

scanf("%d",(ss-num));

printf("请输入学生%d的姓名:",i);

scanf("%s",(ss-name));

printf("请输入学生%d的第1门成绩:",i);

scanf("%f",(ss-s1));

printf("请输入学生%d的第2门成绩:",i);

scanf("%f",(ss-s2));

printf("请输入学生%d的第3门成绩:",i);

scanf("%f",(ss-s3));

printf("学生%d的 学号%d 姓名%s 第1门成绩%f 第2门成绩%f 第3门成绩%f\n",

i, ss-num,ss-name,ss-s1,ss-s2,ss-s3);

i++;

}

return 0;

}

int main(int argc,char** argv)

{

int count;

printf("输入学生数:");

scanf("%d",count);

if ( count=0 )

{

printf("数量错误!!\n");

return -1;

}

pStu a = (pStu)malloc(count*sizeof(student));

if ( a == NULL )

return -1;

input( a, count );

return 0;

}

C语言中,用结构体作函数参数的问题?

可以的,这样写:

test((RGBColor){0x0, 0x1, 0x2});

这个意思是把{0x0, 0x1, 0x2}强制转化为RGBColor类型。从语法语义上面是没问题的,在GCC编译没问题。

但是51上面没实验,按C标准能说得通,你可以试一试。

在c语言中 函数和结构体的区别

C语言中结构体和函数有着本质上的不同。

结构体是用户自己定义的一中数据类型,比如说你想要把学生信息作为一个整体存放在一个数据类型中,可以定义结构体,其中某个成员存放学号,某个存放姓名等等。

但是函数就完全不同了,函数是为了实现某种功能,比如你要在一堆学生中寻找某一个学生可以用函数来实现。


文章题目:c语言函数参数与结构体,c语言函数的一般结构
地址分享:http://cdxtjz.cn/article/phpddp.html

其他资讯