sap.net怎么做网站,广州做网站多,黄冈建设局网站,网站运营优化培训归纳编程学习的感悟#xff0c; 记录奋斗路上的点滴#xff0c; 希望能帮到一样刻苦的你#xff01; 如有不足欢迎指正#xff01; 共同学习交流#xff01; #x1f30e;欢迎各位→点赞 #x1f44d; 收藏⭐ 留言#x1f4dd; 路还在继续#xff0c;梦还在期…
归纳编程学习的感悟 记录奋斗路上的点滴 希望能帮到一样刻苦的你 如有不足欢迎指正 共同学习交流 欢迎各位→点赞 收藏⭐ 留言 路还在继续梦还在期许。天高云远至少看得见 一起加油 目录 一、题目
二、分析
三、知识点 指向结构体的指针变量作为函数参数 结构体指针与函数
四、代码实现
五、运行结果这里假设3为教师
编辑 六、总结 一、题目 某学校增加教师的工资。假设工资根据教师的职称增加:教授增加 500元副教授增加 300 元讲师增加 200 元助教增加 100 元。教师的信息有姓名、年龄、职和工资等编写程序计算每位教师增加后的工资(假设共有 100 位老师)。
二、分析 分析:教师的基本信息包括: name(姓名)、age(年龄)、post(职称)和 wages(工资)。采用结构体类型存储基本信息。增加工资用 add()函数实现实参和形参采用指向结构体类型的指针。
三、知识点 指向结构体的指针变量作为函数参数 函数间传递结构体数据时函数参数可以是结构体变量的成员也可以是结构体变量,还可以是指向结构体的指针。 常见的做法是将指向结构体的指针作为函数的实参传递给调用的函数。这种传递方式相当于地址传递指针形参变量和实参指针指向同一内存空间。需要注意的是采用这种参数传递方式在被调用的函数中如果对结构体成员进行赋值则会改变上一级函数中结构体变量的值。 结构体指针与函数 C 语言函数的参数传递都是传值的一些应用程序需要用结构体数据作为参数进行传 递。一般情况下虽然说 C 语言允许传递结构体数据但是结构体使用的存储空间可能比较大这就可能导致传送数据量过大影响程序的运行效率。如果选择结构体变量作为数那么只能在该结构体使用的字节数比较少时使用。 函数之间如果需要传递结构体数据,有经验的程序员一般采用传递结构体指针的方法这样就大幅减少了参数传递时的数据传送量也意味着程序运行速度得以提高。 函数返回时道理也一样在结构体的字节数比较多时应该尽量避免返回一个结构类型的数据而尽可能返回一个指向结构体的指针变量。 四、代码实现
#includestdio.h
#includestring.h
#define N 100struct teach{//teach结构体定义 char name[11];int age;char post[11];double wages;
};double add(struct teach *);//add函数声明 int main(){struct teach man[N];int i;for(i0;iN;i){//输入教师的基本信息 printf(输入第%d个教师的基本信息\n,i1);printf(姓名 );scanf(%s,man[i].name);printf(年龄);scanf(%d,man[i].age);printf(职称);scanf(%s,man[i].post);printf(原工资);scanf(%lf,man[i].wages); }for(i0;iN;i){//对每个教师调用add函数 printf(姓名%s 调整后的工资%.2f\n,man[i].name,add(man[i]));}
}double add(struct teach *q){double addwage;if(strcmp(q-post,教授)0){q-wages500;}else if(strcmp(q-post,副教授)0){q-wages300;}else if(strcmp(q-post,讲师)0){q-wages200;}else {q-wages100;}addwageq-wages;return addwage;
}
五、运行结果这里假设3为教师 六、总结 利用结构体可以将多个相同或不同类型的数据组合在一起构成新数据类型。 通常在源程序文件的开始部分定义结构体类型以便本文件的所有函数中都能用它定义变量数组和指针。 当然也可以在函数中声明结构体类型其有效范围仅限与该函数。 最后希望本篇文章对你有所帮助也希望可以支持支持博主后续博主也会定期更新学习记录记录学习过程中的点点滴滴。若这篇文章中有哪些不正确的内容欢迎大家在评论区和我交流讨论