C语言中mm(STU a[], STU s)的意思是表示一个函数的首部。
STU可能是编程人员定义的一个结构体,举例如下:
struct
{
char name[20];
char no[5];
int age;
}STU; // STU就是一个结构体,包含以上三个成员
void mm(STU a[], STU s) // 数组a中每个元素都是STU类型,指针s指向的地址存放的就是STU类型的数据
{
// 对数组a中第一个STU类型的数据进行初始化操作
a[0]name = "ZhangLi";
a[0]no = "2015213";
a[0]age = 20;
// 对指针s指向的地址中的STU类型的数据进行初始化操作
s->name = "ZhaoSi";
s->no = "2015342";
s->age = 21;
}
mm是个函数,此函数接受2个参数,一个是数组变量一个是指针变量,类型方面,那要根据编程者把STV定义成什么类型了。
使用#define可以可以定义符号类型,例如#define int STV。这样,STV就是int类型。
另外,这里的 a[]和 s是形式参量,可以省略。
扩展资料:
stu在C语言中没有特定的含义,既不是关键字也不是库函数的函数名。可能是编程人员自定义的一个变量名或函数名等。
通常用来表示定义一个学生结构体类型,例如:
struct stu // 定义一个结构体类型,结构体名为stu
{
int no; // 学号
char name[10]; // 姓名
char sex; // 性别
};
楼上回答不正确。其实这个是错误的。
这一个用法是错误的!
测试平台:Devc++
#include<stdioh>#define N 100
struct student {
int a; char b;
}STU;
int main(){
STU stu[N];
printf("aa");
return 0;
}
报错!
这样才是对的!
#include<stdioh>#define N 100
typedef struct student {
int a; char b;
}STU;
int main(){
STU stu[N];
printf("aa");
return 0;
}
为什么?typedef的意思就是把后面那个东西换一个名字!例如第二个程序typedef就是把
struct student {
int a; char b;
}换一个名字叫做STU。那么后面写STU A[N];
就是对的相当于:
struct student {
int a; char b;
}A[N];
如果不加typedef的话,那么
struct student {
int a; char b;
}STU;就相当于定义了一个STU!,然后后面写STU A[N];就是错误的。
struct student这是一个结构体,里面各个元素大小如下:
struct student{
int num;//4
char name[20];//20
char sex;//1 对齐+3
int age;//4
float score;//4
char addr[30];//30 对齐+2
};
按照4字节对齐,sizeof(struct student)应该是68
struct student stu[3];
这个是数组。 表示三个struct student的元素。
sizeof(stu) = sizeof(struct student)3=683=204
stu每个元素都是struct student类型,大小都是68
struct为关键字结构体;student 为类型名,{}内为结构体的组成成分,如学生的班级、学号、成绩等;stu是一个结构体变量,即一个学生的班级、学号、成绩等信息。现在有N个学生,就需要定义一个结构体数组,stu[N],用来存放N个学生的班级、学号、成绩等信息。
以上就是关于C语言中mm(STU a[],STU *s)是什么意思全部的内容,包括:C语言中mm(STU a[],STU *s)是什么意思、struct student {……}STU; STU stu[N]; 大写的STU表示结构名称为何下排重复一遍STU,后又是小写的stu、stu[3]中的3表示的什么stu的大小是多少stu中每个元素的大小又是多少等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!