2011年6月17日 星期五

EX09. 指標與結構

 
修改程式範例: Ch3-3.c 為 Ch3-3e.c
1.增加電話結構的宣告
struct phone /* phone結構 */
{
char phone1[15];
char phone2[15];
}
2.將 struct label增加phone結構成員:
struct phone callno;
3.使用結構變數和指標來存取



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/* Ch3-3e.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct phone             /* 結構phone的宣告 */ 
  {
    char phone1[15];
    char phone2[15];  
  }; 

struct label             /* 結構label的宣告 */ 
  {
    char name[20];
    int age;
    struct phone callno;
  };

/* 函數: 顯示結構指標的成員變數 */ 
void showlabel(struct label *ptr)
{
   printf("員工名牌----------\n"); 
   printf("姓名: %s\n", ptr->name);
   printf("年齡: %d\n", ptr->age);
   printf("電話: %s\n", ptr->callno.phone1);
   printf("手機: %s\n", ptr->callno.phone2);
   printf("------------------\n");
}

/* 主程式 */
int main()
{
   /* 宣告變數 */
   struct label worker;
   struct label *ptr;

   /* 將結構指標指向結構 */
   ptr = &worker;

   /* 指定結構的成員變數 */             
   strcpy(worker.name, "陳會安"); 
   ptr->age = 30;
   strcpy(worker.callno.phone1, "04-23376297");
   strcpy(worker.callno.phone2, "0926-152153");

   /* 顯示結構的成員變數 */
   printf("姓名: %s\n", worker.name);
   printf("年齡: %d\n", worker.age);
   printf("電話: %s\n", worker.callno.phone1);
   printf("手機: %s\n", worker.callno.phone2);
   
   /* 呼叫函數 */
   showlabel(ptr); 
   
   system("PAUSE");
   return 0; 
}


執行結果:
姓名: 陳會安
年齡: 30
電話: 04-23376297
手機: 0926-152153
員工名牌----------
姓名: 陳會安
年齡: 30
電話: 04-23376297
手機: 0926-152153
------------------
請按任意鍵繼續 . . .

沒有留言:

張貼留言