CC++中typedefstruct和struct的用法

上传人:新*** 文档编号:101781373 上传时间:2019-09-29 格式:DOC 页数:14 大小:84KB
返回 下载 相关 举报
CC++中typedefstruct和struct的用法_第1页
第1页 / 共14页
CC++中typedefstruct和struct的用法_第2页
第2页 / 共14页
CC++中typedefstruct和struct的用法_第3页
第3页 / 共14页
CC++中typedefstruct和struct的用法_第4页
第4页 / 共14页
CC++中typedefstruct和struct的用法_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《CC++中typedefstruct和struct的用法》由会员分享,可在线阅读,更多相关《CC++中typedefstruct和struct的用法(14页珍藏版)》请在金锄头文库上搜索。

1、+C/C+中typedef struct和struct的用法xml 代码1. 由于对typedef理解不够,因此从网上摘录了一些资料,整理如下: 2. 3. C/C+中typedefstruct和struct的用法 4. 5. struct_x1.x1;和typedefstruct_x2.x2;有什么不同? 6. 7. 8. 其实,前者是定义了类_x1和_x1的对象实例x1,后者是定义了类_x2和_x2的类别名x2, 9. 10. 所以它们在使用过程中是有取别的.请看实例1. 11. 12. 知识点 13. 14. 结构也是一种数据类型,可以使用结构变量,因此,象其它类型的变量一样,在使用结构

2、变量时要先对其定义。 15. 16. 定义结构变量的一般格式为: 17. 18. struct结构名 19. 20. 21. 22. 类型变量名; 23. 24. 类型变量名; 25. 26. . 27. 28. 结构变量; 29. 30. 结构名是结构的标识符不是变量名。 31. 32. 33. 34. 另一种常用格式为: 35. 36. 37. 38. typedefstruct结构名 39. 40. 41. 42. 类型变量名; 43. 44. 类型变量名; 45. 46. . 47. 48. 结构别名; 49. 50. 51. 52. 53. 54. 另外注意:在C中,struct不能

3、包含函数。在C+中,对struct进行了扩展,可以包含函数。 55. 56. 57. 58. = 59. 60. 61. 62. 实例1:struct.cpp 63. 64. 65. 66. #include 67. 68. usingnamespacestd; 69. 70. typedefstruct_point 71. 72. intx; 73. 74. inty; 75. 76. point;/定义类,给类一个别名 77. 78. 79. 80. struct_hello 81. 82. intx,y; 83. 84. hello;/同时定义类和对象 85. 86. 87. 88. 8

4、9. 90. intmain() 91. 92. 93. 94. pointpt1; 95. 96. pt1.x=2; 97. 98. pt1.y=5; 99. 100. coutptpt1.x=pt1.xpt.y=pt1.yendl; 101. 102. 103. 104. /hellopt2; 105. 106. /pt2.x=8; 107. 108. /pt2.y=10; 109. 110. /coutpt2pt2.x=pt2.xpt2.y=pt2.yendl; 111. 112. /上面的hellopt2;这一行编译将不能通过.为什么? 113. 114. /因为hello是被定义了的

5、对象实例了. 115. 116. /正确做法如下:用hello.x和hello.y 117. 118. 119. 120. hello.x=8; 121. 122. hello.y=10; 123. 124. couthellohello.x=hello.xhello.y=hello.yendl; 125. 126. 127. 128. return0; 129. 130. 131. 132. 133. 134. 135. 136. typedefstruct与struct的区别 137. 138. 1.基本解释 139. 140. typedef为C语言的关键字,作用是为一种数据类型定义一个

6、新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 141. 142. 143. 144. 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 145. 146. 147. 148. 至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。 149. 150. 151. 152. 2.typedef&结构的问题 153. 154. 155. 156. 当用下面的代码定义一个结构时,编译器报了一个错误,为什么呢?莫非C语言不允许在结构中包含指向它自己的指针吗?请你先猜

7、想一下,然后看下文说明: 157. 158. 159. 160. typedefstructtagNode 161. 162. 163. 164. char*pItem; 165. 166. pNodepNext; 167. 168. *pNode; 169. 170. 171. 172. 答案与分析: 173. 174. 175. 176. 1、typedef的最简单使用 177. 178. 179. 180. typedeflongbyte_4; 181. 182. 183. 184. 给已知数据类型long起个新名字,叫byte_4。 185. 186. 187. 188. 2、type

8、def与结构结合使用 189. 190. 191. 192. typedefstructtagMyStruct 193. 194. 195. 196. intiNum; 197. 198. longlLength; 199. 200. MyStruct; 201. 202. 203. 204. 这语句实际上完成两个操作: 205. 206. 207. 208. 1)定义一个新的结构类型 209. 210. 211. 212. structtagMyStruct 213. 214. 215. 216. intiNum; 217. 218. longlLength; 219. 220. ; 221

9、. 222. 223. 224. 分析:tagMyStruct称为“tag”,即“标签”,实际上是一个临时名字,struct关键字和tagMyStruct一起,构成了这个结构类型,不论是否有typedef,这个结构都存在。 225. 226. 227. 228. 我们可以用structtagMyStructvarName来定义变量,但要注意,使用tagMyStructvarName来定义变量是不对的,因为struct和tagMyStruct合在一起才能表示一个结构类型。 229. 230. 231. 232. 2)typedef为这个新的结构起了一个名字,叫MyStruct。 233. 234

10、. 235. 236. typedefstructtagMyStructMyStruct; 237. 238. 239. 240. 因此,MyStruct实际上相当于structtagMyStruct,我们可以使用MyStructvarName来定义变量。 241. 242. 243. 244. 答案与分析 245. 246. 247. 248. C语言当然允许在结构中包含指向它自己的指针,我们可以在建立链表等数据结构的实现上看到无数这样的例子,上述代码的根本问题在于typedef的应用。 249. 250. 251. 252. 根据我们上面的阐述可以知道:新结构建立的过程中遇到了pNext域的声明,类型是pNode,要知道pNode表示的是类型的新名字,那么在类型本身还没有建立完成的时候,这个类型的新名字也还不存在,也就是说

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 专业基础教材

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号