c语言函数结构体指针 c++结构体指针作为函数参数

C语言 结构体指针

孩子,你这个代码很多错误。

惠城ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

1 编译错误:result=(studentarr+6);地址赋值给结构体对象?

2 scanf("%s,%s,%s,%s,%c,%d",STU[i].name,STU[i].surname,STU[i].UUN,STU[i].department,STU[i],每个变量前都要加

3 printf("%s %s %s %s %c %d",findOldest.name,findOldest.surname,findOldest.UUN,findOldest.department,findOldest.gender,findOldest.age);函数名称的变量?错了吧?

4 严重错误:结构体中如:name这种char*根本存不下scanf输入的字符串的,需要把所有char*改成char数组

5 for(i=3;i6;i++){ scanf ...}这种貌似可能搞不定的,没法多次循环输入多次,这点哥也不确定。

最后附上简单修改的代码,我没时间,没帮你改涉及scanf的部分。

#include stdlib.h

#include stdio.h

typedef struct{

char* name;

char* surname;

char* UUN;

char* department;

char gender;

int age;

}student_t;

student_t* findOldest(student_t *studentarr){

//student_t temp;

int olderAge;

int sequence;

//student_t result;

int i;

sequence = 0;

olderAge = studentarr-age;

for(i=1;i3;i++)

{

//if(studentarr-age (studentarr+1)-age){

// temp=*(studentarr+i);

// *(studentarr+i)=*(studentarr+1+i);

// *(studentarr+i+1)=temp;

//}

printf("age[%d]\n", studentarr[i].age);

if(olderAge studentarr[i].age)

{

olderAge = studentarr[i].age;

sequence = i;

printf("sequence[%d]\n", sequence);

}

}

//result = *(studentarr+6);

//return result;

return (studentarr+sequence);

}

int main() {

/* BEGIN ANSWER */

student_t STU[3]={

{"John","Bidhop","d1234","Inf",'m',20},

{"Lady","Cook","s2345","Eng",'f',17},

{"James","Jackson","s3456","Eng",'m',19}

};

int i;

//for(i=3;i6;i++){

//printf("please type the data of students\n");

// printf("name,surname,UUN,department,gender,age\n");

// scanf("%s,%s,%s,%s,%c,%d",STU[i].name,STU[i].surname,STU[i].UUN,STU[i].department,STU[i].gender,STU[i].age);

//}

student_t *stu=STU;

student_t* oldest = findOldest(stu);

printf("%s %s %s %s %c %d\n",oldest-name,oldest-surname,oldest-UUN,oldest-department,oldest-gender,oldest-age);

/* END ANSWER */

return EXIT_SUCCESS;

}

C语言结构体内部的函数指针有什么意义

//在结构体中包含函数指针,

//这样,可以使用结构体,调用函数。

//这个有点像C++的面向对象的类 

//十分好用。 

#include "stdio.h"  

struct DEMO  

{  

int x,y;  

int (*func)(int,int); //函数指针  

};  

int add2(int x,int y)  

{  

return x+y;  

}  

int main()  

{

int ret=0;

struct DEMO demo;  

demo.func=add2; //结构体函数指针赋值  

ret=demo.func(3,4);

printf("func(3,4)=%d\n",ret);  

}

C语言函数怎么传结构体指针

#include stdio.h

#include stdlib.h

#define LINE_MAX 80

struct body{

char data[100]; //要定义成数组才可以,不然,还要去分配内存

int num;

};

void create(struct body *bd); //结构体定义后,才能使用结构体类型,所以,移动到定义之后

int main(int argc, char *argv[]) {

int choose;

struct body *bd;

bd = (struct body*)malloc(sizeof(struct body));

while(1)

{

printf("        *******************欢迎来到文章编辑系统********************\n");

printf("1.   创建新文本\n");

printf("2.   统计文本\n");

printf("5.   退出系统\n");

printf("请选择你需要的功能的序号:");

scanf("%d",choose);

switch(choose)

{

case 1:

printf("创建新文本\n");

create(bd);

continue;

case 2:

printf("统计文本\n");

continue;

case 5:

printf("谢谢您的使用!\n");

break;

default:

printf("请正确输入!\n");

continue;

}

if(choose == 5)

break;

}

return 0;

}

void create(struct body *bd)

{

printf("编辑文本,Enter键保存\n");

scanf("%s",bd-data);//结构体指针引用成员用-,  同时,格式串应该是%s

printf("您输入的文本是:%s\n",bd-data); //同上

}

c语言 结构体指针

struct node next;只有一个实体next,虽然写在循环里,但编译时就提前到前面合适的地方去了,所以循环只操作了一个next!


分享文章:c语言函数结构体指针 c++结构体指针作为函数参数
链接地址:http://myzitong.com/article/ddcoces.html