`
yzd
  • 浏览: 1816979 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

结构体的定义、访问以及C与C++中结构体的区别

 
阅读更多
<div class="articalTitle">
<h2 id="t_3e2d2eb60100fjsu" class="titName SG_txta">关于struct和typedefstruct(转载)</h2>
<span class="time SG_txtc">(2009-10-10 15:15:25)</span>
<div class="turnBoxzz">
<a id="quote_set_sign2" class="SG_aBtn SG_aBtn_ico SG_turn"><cite><img class="SG_icon SG_icon111" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" alt="" width="15" height="15" align="absmiddle">
转载</cite>
</a>
</div>
</div>
<table border="0"><tbody><tr>
<td class="blog_tag">

<span class="SG_txtb">标签:</span>
<h3>
<a href="http://uni.sina.com.cn/c.php?t=blog&amp;k=%D4%D3%CC%B8&amp;ts=bpost&amp;stype=tag" target="_blank">杂谈</a>
</h3>
</td>
<td class="blog_class">
<span class="SG_txtb">分类:</span>
<a href="http://blog.sina.com.cn/s/articlelist_1043148470_3_1.html" target="_blank">programing</a>
</td>
</tr></tbody></table>
<p></p>
<p><span style="color: #940000;">1 首先:</span>
<br>
在C中定义一个结构体类型要用typedef:<br>
typedef struct Student<br>
{<br>
int a;<br>
}Stu;<br>
于是在声明变量的时候就可:Stu stu1;<br>
如果没有typedef就必须用struct Student stu1;来声明<br>
这里的Stu实际上就是struct Student的别名。<br>
另外这里也可以不写Student(于是也不能struct Student stu1;了)<br>
typedef struct<br>
{<br>
int a;<br>
}Stu;<br>
但在c++里很简单,直接<br>
struct Student<br>
{<br>
int a;<br>
};<br>
于是就定义了结构体类型Student,声明变量时直接Student stu2;<br>
===========================================<br><span style="color: #940000;">2其次:</span>
<br>
在c++中如果用typedef的话,又会造成区别:<br>
struct</p>
<div id="sina_keyword_ad_area2" class="articalContent  ">
Student<br>
{<br>
int
a;<br>
}stu1;//stu1是一个变量<br>
typedef
struct
Student2<br>
{<br>
int
a;<br>
}stu2;//stu2是一个结构体类型<br>
使用时可以直接访问stu1.a<br>
但是stu2则必须先 stu2 s2;<br>
然后
s2.a=10;<br>
===========================================<br><span style="color: #940000;">3</span>
掌握上面两条就可以了,不过最后我们探讨个没多大关系的问题<br>
如果在c程序中我们写:<br>
typedef struct<br>
{<br>
int num;<br>
int age;<br>
}aaa,bbb,ccc;<br>
这算什么呢?<br>
我个人观察编译器(VC6)的理解,这相当于<br>
typedef struct<br>
{<br>
int num;<br>
int age;<br>
}aaa;<br>
typedef aaa bbb;<br>
typedef aaa ccc;<br>
也就是说aaa,bbb,ccc三者都是结构体类型。声明变量时用任何一个都可以,在c++中也是如此。但是你要注意的是这个在c++中如果写掉了typedef关键字,那么aaa,bbb,ccc将是截然不同的三个对象。
</div>
<div class="articalContent  "><br></div>
<div class="articalContent  "><br></div>
<div class="articalContent  "><br></div>
<div class="articalContent  "><br></div>
<div class="articalContent  ">
<div id="sina_keyword_ad_area2" class="articalContent  ">
<div class="articalTitle">
<h2 id="t_3e2d2eb60100fjtk" class="titName SG_txta">结构体成员的访问</h2>
<span class="time SG_txtc">(2009-10-10 16:06:09)</span>
<div class="turnBoxzz">
<a id="quote_set_sign2" class="SG_aBtn SG_aBtn_ico SG_turn"><cite><img class="SG_icon SG_icon111" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" alt="" width="15" height="15" align="absmiddle">
转载</cite>
</a>
</div>
</div>
<div id="sina_keyword_ad_area" class="articalTag">

<table border="0"><tbody><tr>
<td class="blog_tag">

<span class="SG_txtb">标签:</span>
<h3>
<a href="http://uni.sina.com.cn/c.php?t=blog&amp;k=%D4%D3%CC%B8&amp;ts=bpost&amp;stype=tag" target="_blank">杂谈</a>
</h3>
</td>
<td class="blog_class">
<span class="SG_txtb">分类:</span>
<a href="http://blog.sina.com.cn/s/articlelist_1043148470_3_1.html" target="_blank">programing</a>
</td>
</tr></tbody></table>
</div>
<div id="sina_keyword_ad_area2" class="articalContent  ">
<p>一、如何定义结构体和初始化结构体</p>
<p>1.定义结构体</p>
<p>struct book {</p>
<p> char
title[MAXTITL];</p>
<p> char
author[AXAUTL];</p>
<p>
float
value;</p>
<p>}
library;</p>
<p></p>
<p>注解: 此处定义了一个名字为 library 的struct
book结构体,如果要继续定义新的结构体,如下</p>
<p>

struct book library2; //
这样便定义了一个新的strut book类的结构体 library2</p>
<p>2.初始化结构体</p>
<p>
两种方式,一种在定义结构体时初始化,另一种利用结构体成员运算符进行引用初始化(见下文)</p>
<p></p>
<p>二、如何引用该类结构体成员</p>
<p></p>
<p>在定义了 library 和 library2
两个结构体后,若想要访问其内部成员,应该使用结构体成员运算符点(.)就可以,例如</p>
<p></p>
<p>library.value =
9;
library.title</p>
<p></p>
<p>三、如何使用结构体指针访问结构体成员</p>
<p>1、结构体指针的定义和初始化</p>
<p>

struct book *it;</p>
<p>

it = &amp;library;</p>
<p>2、使用结构体指针it访问结构体成员变量</p>
<p>

it-&gt;value = 9;</p>
<p>

it-&gt;title;</p>
</div>
</div>
</div>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics