谢谢前辈。结构名等同数组名。结构变量等同 数组名?这两个不是一样了吗
追答等同 是指语法 上的 含义,语法上的地位。不是等于。
结构 和 数组 都表示 一组数,只不过 一个是单一类型,另一个是不同类型。
它们的成员,一个称为 元素, 一个称为 成员。
还是不太懂,能加上具体的代码说明他们区别例子吗?比如 【 struct student{char name[20];int num;float math,yuwen,wuli,mean;} 】 和【struct student{char name[20];int num;float math,yuwen,wuli,mean;} , st1 ,st2 ,st3 】 有什么区别呢
追答你写的前者是定义结构 student。没有声明变量。
后者是定义结构 student,并声明st1 ,st2 ,st3 是这种结构变量。
-------------
写法1
#include
#include
struct student{char name[20];int num;float math,yuwen,wuli,mean;} ;
main(){
struct student st1,st2,st3;
st1.num=1301;st2.num=1302;st3.num=1303;
st1.math=81; st2.math=76;st3.math=89;
printf("%d %f \n%d %f\n %d %f\n",st3.num,st3.math,st1.num,st1.math,st2.num,st2.math);
return 0;
}
-----------
写法2
#include
#include
struct student{char name[20];int num;float math,yuwen,wuli,mean;} st1,st2,st3 ;
main(){
st1.num=1301;st2.num=1302;st3.num=1303;
st1.math=81; st2.math=76;st3.math=89;
printf("%d %f \n%d %f\n%d %f\n",st3.num,st3.math,st1.num,st1.math,st2.num,st2.math);
return 0;
}
#include<stdio.h>
#include<string.h>
struct A
{
char name[16];
int number;
};
int main()
{
A a;
strcpy(a.name,"Hello World!");
a.number=123;
printf("%s,%d\n",a.name,a.number);
return 0;
}
结构相当于C++或者Java的类,跟数组有什么关系?
只是一种自定义的类型。
追问只学过C 没学过C++和JAVA。。
别人的答案我实在看不懂,所以在别的地方看到后来这里回答一下我的个人理解,如果有问题请指教。
下面的代码每一段的含义都是一样的。
// 情况一:student作为结构体的标识符 常规操作