发布日期:2015-12-22 15:22 来源: 标签: 编程语言 C++教程 C++结构体 C++定义结构体
本章我们主要学习C++中结构体常用的几种定义形式,下面我们就做一下具体讲解,希望大家多多支持中国站长网络学院。
如何定义结构体?我们先一起来看一段代码
<pre class="cpp" name="code">#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;  
}  
</pre><br>  
#define N 10005  
<pre></pre>  
<pre class="cpp" name="code">struct stu  
{  
       int a;  
       int b;  
}; 
struct stu s[N];、</pre>
首先我们了解什么是结构体名,结构体变量,结构体成员?
结构体名 正如这样  struct stu s/这里stu 是结构体名,s是结构体变量了,那么里面的a,b都是他的成员了;
//在c++里面,我们发现笔者很喜欢用typedef;例如:
<pre class="cpp" name="code">typedef struct stu  
{  
    int a;  
     int b;  
}s1,s2;</pre>  
<br>  
s1,s2,就相当stu他是结构体名,不是结构体变量,要运用结构体我们就要定义一个结构体变量;
<pre class="cpp" name="code">//像这样  
s1 ss;  
s2 sss;</pre>  
接着问题就来了,结构体成员是否可以和结构体变量重名呢?结构体名是否可以和结构体变量名一样呢?
<pre class="cpp" name="code">struct stu  
{  
       int a;  
       int b;  
};  
struct stu a;//struct stu stu;</pre>  
结构体,在C++中,是一个类而已。所以,不管是类,还是结构体,它产生的对象名,其实是可以与成员同名的。
<pre class="cpp" name="code">struct stu  
{  
         int a,b;  
}stu;//这时stu已经变成结构体变量了  
</pre>  
但是下面的代码又没解释,只能说c很强大啊,下面的代码说明我们还是少重名,以免发生错误
<pre class="cpp" name="code">#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;  
}  
</pre>  
下面的是结构体指针的两种定义方式:
<pre class="cpp" name="code">#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;  
}  
</pre>  



相关评论

专题信息
    C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++于2014年8月18日公布。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性! 本教程从基础讲解了C++语言,希望对大家有所帮助,望多多支持中国站长网络学院。