AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > C语言

C语言入门之结构(1)

51自学网 2015-09-08 http://www.wanshiok.com



   结构变量的赋值

   前面已经介绍,结构变量的赋值就是给各成员赋值。 可用输入语句或赋值语句来完成。

   [例7.1]给结构变量赋值并输出其值。

main(){
  struct stu
  {
   int num;
   char *name;
   char sex;
   float score;
  } boy1,boy2;
  boy1.num=102;
  boy1.name="Zhang ping";
  printf("input sex and score/n");
  scanf("%c %f",&boy1.sex,&boy1.score);
  boy2=boy1;
  printf("Number=%d/nName=%s/n",boy2.num,boy2.name);
  printf("Sex=%c/nScore=%f/n",boy2.sex,boy2.score);
}
struct stu
{
  int num;
  char *name;
  char sex;
  float score;
}boy1,boy2;
boy1.num=102;
boy1.name="Zhang ping";
printf("input sex and score/n");
scanf("%c %f",&boy1.sex,&boy1.score);
boy2=boy1;
printf("Number=%d/nName=%s/n",boy2.num,boy2.name);
printf("Sex=%c/nScore=%f/n",boy2.sex,boy2.score);

   本程序中用赋值语句给num和name两个成员赋值,name是一个字符串指针变量。用scanf函数动态地输入sex和score成员值,然后把boy1的所有成员的值整体赋予boy2。最后分别输出boy2 的各个成员值。本例表示了结构变量的赋值、输入和输出的方法。

   结构变量的初始化

   如果结构变量是全局变量或为静态变量, 则可对它作初始化赋值。对局部或自动结构变量不能作初始化赋值。

   [例7.2]外部结构变量初始化。

struct stu /*定义结构*/
{
  int num;
  char *name;
  char sex;
  float score;
} boy2,boy1={102,"Zhang ping",'M',78.5};
main()
{
  boy2=boy1;
  printf("Number=%d/nName=%s/n",boy2.num,boy2.name);
  printf("Sex=%c/nScore=%f/n",boy2.sex,boy2.score);
}
struct stu
{
  int num;
  char *name;
  char sex;
  float score;
}boy2,boy1={102,"Zhang ping",'M',78.5};
main()
{
  boy2=boy1;
  ……
}

   本例中,boy2,boy1均被定义为外部结构变量,并对boy1作了初始化赋值。在main函数中,把boy1的值整体赋予boy2, 然后用两个printf语句输出boy2各成员的值。

   [例7.3]静态结构变量初始化。

main()
{
  static struct stu /*定义静态结构变量*/
  {
   int num;
   char *name;
   char sex;
   float score;
  }boy2,boy1={102,"Zhang ping",'M',78.5};
  boy2=boy1;
  printf("Number=%d/nName=%s/n",boy2.num,boy2.name);
  printf("Sex=%c/nScore=%f/n",boy2.sex,boy2.score);
}
static struct stu
{
  int num;
  char *name;
  char sex;
  float score;
}boy2,boy1={102,"Zhang ping",'M',78.5};

   本例是把boy1,boy2都定义为静态局部的结构变量, 同样可以作初始化赋值。

 
 
说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
 

上一篇:C语言入门之结构(2)  下一篇:C语言入门之多维数组的指针变量