C/C++結構體總結__C++

來源:互聯網
上載者:User
#include"iostream" 
using  namespace  std; 
 
struct  TestStruct 
    int iNumber;
    char  charArray[10];
    char  ch;
    double dNumber;
10  };
11  //【嵌套的結構體類型成員】
12  struct Date 
13  {
14      int Day;
15      int Month;
16      int Year;
17  } ;
18  struct Person /*定義結構體*/
19  {
20      char Name[20];
21      int  Age;
22      struct Date Birthday; //嵌套Date結構體類型成員
23  } ;
24  //【結構體中的指標成員】
25  struct Student{   
26      char *name;   
27      int score;   
28      struct Student* next;   
29  };    
30   
31  int main(int argc, char* argv[])
32  {
33      //結構體的大小【結構體對齊】
34      //A: 結構體變數的首地址能夠被其最寬基本類型成員的大小所整除
35      //B: 結構體每個成員相對於結構體首地址的位移量都是成員自身大小的整數倍,如有需要編譯器會在成員之間加上填充位元組
36      //C:結構體的總大小為結構體最寬基本類型成員大小的整數倍
37      cout<<"Size of TestStruct "<<sizeof(TestStruct)<<endl;
38      cout<<"Size of Date "<<sizeof(Date)<<endl;
39      cout<<"Size of Person "<<sizeof(Person)<<endl;
40   
41      //【結構體變數】
42      TestStruct t ={5,"bcdefg",'a',1.1};
43      cout<<"TestStruct ch:"<<t.ch<<" charArray:"<<t.charArray<<" dNumber:"<<t.dNumber<<" iNumber:"<<t.iNumber<<endl;
44     
45      //【結構體數組】
46      TestStruct tt[3] ={{8,"bcdefg",'m',1.2},{6,"hijklm",'b',2.2},{7,"nopqrs",'c',3.3}};
47      for (int i=0;i<3;i++)
48      {
49         cout<<"TestStruct["<<i<< "]ch:"<<tt[i].ch<<" charArray:"<<tt[i].charArray<<" dNumber:"<<tt[i].dNumber<<" iNumber:"<<tt[i].iNumber<<endl;
50      }
51      //【指標變數與結構體變數】
52      //必須要給結構體指標變數賦予一個有效結構體變數地址,才能正常操作結構體指標變數。
53      //TestStruct *p =&t;否則將出現不可預知的問題。(*p).ch 等價於 p->ch
54      TestStruct *p =&t;
55      cout<<"TestStruct p->ch:"<<p->ch<<" p->charArray:"<<p->charArray<<" p->dNumber:"<<p->dNumber<<" p->iNumber:"<<p->iNumber<<endl;   
56      //【指向結構體數組的指標】
57      //pp的初值為tt,即指向第一個元素,則pp加1後pp就指向下一個元素的起始地址(即tt[1]得起始地址)。
58      TestStruct *pp ;
59      for(pp =tt;pp<tt+3;pp++)
60      {
61         cout<<"TestStruct pp->ch:"<<pp->ch<<" pp->charArray:"<<pp->charArray<<" pp->dNumber:"<<pp->dNumber<<

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.