c/c++結構體幾種定義情況總匯

來源:互聯網
上載者:User
#include <iostream>#include <malloc.h>#include <stdio.h>using namespace std;struct stu{       int *a;       int *b;};int main(){    //struct stu *s=new stu[10];    //struct stu s=new stu;    stu s = (stu*)malloc(sizeof(stu)+2);    //struct stu s;    struct stu s1;//    for (int i=0; i<4; i++)    {        cin>>s.a[i]>>s.b[i];        cout<<s.a[i]<<" "<<s.b[i]<<endl;    }    //delete []s;    while (1);    return 0;}

#define N 10005

struct stu{       int a;       int b;};struct stu s[N];

首先,我們搞清幾個概念,結構體名,結構體變數,結構體成員

結構體名    正如這樣  struct stu s/這裡stu 是結構體名,s是結構體變數了,那麼裡面的a,b都是他的成員了;

//在c++裡面,我們發現筆者很喜歡用typedef;例如:

typedef struct stu{       int a;       int b;}s1,s2;

那麼 s1,s2是什麼意思呢?   大家都知道 typedef的作用的,顧名思義,我們的s1,s2,就相當 stu   他是結構體名,不是結構體變數,要運用結構體 我們就要定義一個結構體變數;

//像這樣s1 ss;s2 sss;

接著 問題就來了,結構體成員是否可以和 結構體變數重名呢?  結構體名是否可以和結構體變數名一樣呢???

struct stu{       int a;       int b;};struct stu a;//struct stu stu;

結構體,在C++中,是一個類而已。所以,不管是類,還是結構體,它產生的對象名,其實是可以與成員同名的。

再試下,

struct stu{         int a,b;}stu;//這時stu已經變成結構體變數了

但是下面的代碼又沒解釋,只能說c很強大啊,下面的代碼說明我們還是少重名,以免發生錯誤

 

#include <iostream>#include <stdio.h>using namespace std;struct stu{       int a;       int b;};int main(){    struct stu stu[100];    struct stu s1;//    for (int i=0; i<4; i++)    {        scanf("%d%d",&stu[i].a,&s1.a);        printf("%d %d ",stu[i].a,s1.a);    }    while (1);    return 0;}

 下面的是結構體指標的兩種定義方式:

1.

#include <iostream>#include <stdio.h>using namespace std;struct stu{       int a;       int b;};int main(){    struct stu *s=new stu[10];    struct stu s1;//    for (int i=0; i<4; i++)    {        cin>>s[i].a>>s[i].b;        cout<<s[i].a<<" "<<s[i].b<<endl;    }    delete []s;    while (1);    return 0;}

2.

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.