c语言结构体由若干个“成员”组成的,其中每一个成员可以是一个基本数据类型或者一个构造类型;
结构体也可以作为函数的形参,形参的格式 为:struct 结构体名 结构体变量名 如 display函数中的形参 struct product pro;
其中 product 为结构体名,pro为结构体变量名(形参)
这种也是值传递的方式;
本来想用 malloc 给结构体成员 动态分配内存大小,但是main函数中调用成员时,显示没有此成员。
#include <stdio.h>
#include <stdlib.h>
struct product
{
char cName[10];
char cShape[20];
char cColor[10];
int iPrice;
char cArear[20];
};
void display(struct product pro)
{
printf("product's name:%s\n",pro.cName);
printf("product's shape:%s\n",pro.cShape);
printf("product's color:%s\n",pro.cColor);
printf("product's price:%d\n",pro.iPrice);
printf("product's arear:%s\n",pro.cArear);
printf("%d",sizeof(pro));
}
int main()
{
struct product product1;
printf("please enter name\n");
scanf("%s",&product1.cName);
printf("please enter shape\n");
scanf("%s",&product1.cShape);
printf("please enter color\n");
scanf("%s",&product1.cColor);
printf("please enter product's price\n");
scanf("%d",&product1.iPrice);
printf("pleanse enter arear\n");
scanf("%s",&product1.cArear);
display(product1);
return 0;
}