2014年3月26日
摘要: Anonymous unions—匿名联合在 C++ 我们可以选择使联合(union)匿名。如果我们将一个 union 包括在一个结构(structure)的定义中,并且不赋予它对象(object)名称 (就是跟在花括号{}后面的名字),这个union 就是匿名的。这种情况下我们可以直接使用 union 中元素的名字来访问该元素,而不需要再在前面加 union 对象的名称。在下面的例子中,我们可以看到这两种表达方式在使用上的区别:unionanonymous unionstruct { char title[50]; char author[50]; union { float d... 阅读全文
posted @ 2014-03-26 21:02 guozqzzu 阅读(6165) 评论(0) 推荐(1) 编辑
摘要: Unions联合(Union) 使得同一段内存可以被按照不同的数据类型来访问,而数据存储在同一个内存位置。它的声明和使用看起来与结构(structure)十分相似,但实际功能是完全不同的。语法: union type_name{ member_type1 member_name1; member_type2 member_name2; member_type3 member_name3; ... ... }object_names;这里建了一个联合类型,通过 type_name 识别。union 中的所有被声明的元素占据同一段内存空间,其大小取声明中最... 阅读全文
posted @ 2014-03-26 20:04 guozqzzu 阅读(579) 评论(0) 推荐(0) 编辑
摘要: 一.自定义数据类型 (typedef) 我们已经看到过一种用户(程序员)定义的数据类型:结构。除此之外,还有一些其它类型的用户自定义数据类型: C++ 允许我们在现有数据类型的基础上定义我们自己的数据类型。我们将用关键字 typedef 来实现这种定义,它的形式是: typedef existing 阅读全文
posted @ 2014-03-26 17:11 guozqzzu 阅读(979) 评论(0) 推荐(0) 编辑
摘要: Nesting structures 结构体可以嵌套(nested)使用,即一个结构体本身又可以是另一个结构体中的类型。例如: 在有以上声明之后,我们可以使用下面的表达式: 都是有效的。且最后两个表达式是等价的。 这里所讨论的结构的概念与C语言中结构的概念是一样的。但在C++中,结构体的概念已经被扩 阅读全文
posted @ 2014-03-26 15:49 guozqzzu 阅读(1072) 评论(0) 推荐(0) 编辑
摘要: 像其它数据类型一样,结构体也可以有指针。可以被它自己的类型的指针所指向。其规则同其它基本数据类型一样: struct movies_t{ string title; int year; }; movies_t amovie; movies_t* pmovie; 这里 amovie 是一个结构体 mo 阅读全文
posted @ 2014-03-26 14:38 guozqzzu 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 一个结构体(data structure)就是 一组数据元素被集合在一起,放在一个名字下面。这些数据元素,被称为 成员(members),可以有不同的类型(type)和长度(length)。定义数据结构的语法如下: struct type_name{ member_type1 member_name 阅读全文
posted @ 2014-03-26 01:53 guozqzzu 阅读(1829) 评论(0) 推荐(0) 编辑
  2014年3月25日
摘要: C++ 集成 new 和 delete 操作进行动态内存分配,但是在 C 语言中无效。C 语言中使用函数库来解决,即在头(在 C 中称为)中定义的函数:malloc ,calloc ,realloc ,free 。这些函数在 C++ 中依然有效。但是使用上面函数分配的内存块和用 new 返回的并不一定兼容,不要混用,他们应当在各自的函数集或操作中使用。(1) 函数 malloc 这个函数是给指针动态分配内存,原型: void* malloc (nbytes);其中nbytes 是我们想要给指针分配的内存字节数。这个函数返回一个void*类型的指针,因此我们需要用类型转换(type cas... 阅读全文
posted @ 2014-03-25 16:28 guozqzzu 阅读(700) 评论(0) 推荐(0) 编辑
  2014年3月15日
摘要: 在之前我们所写过的程序中,所必需的内存空间的大小都是在程序执行之前就已经确定了。但如果我们需要内存大小为一个变量,其数值只有在程序运行时 (runtime)才能确定,例如有些情况下我们需要根据用户输入来决定必需的内存空间,那么该怎么办呢? 答案是动态内存分配(dynamic memory),为此C+ 阅读全文
posted @ 2014-03-15 23:14 guozqzzu 阅读(7921) 评论(0) 推荐(1) 编辑
  2014年3月13日
摘要: c++允许对指向函数的指针进行操作。它的一个重要使用是把一个函数作为参数传给另一个函数。 声明一个函数指针像声明一个函数原型一样,不过函数名前面插个符号 * ,然后用()扩起来。 #include <iostream> #include <string> using namespace std in 阅读全文
posted @ 2014-03-13 22:20 guozqzzu 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 1. void指针(鉴于对容易混淆的指针属性,在此贴上英文解释,英文表达更加直接)[Thevoidtype of pointer is a special type of pointer. In C++,voidrepresents the absence of type. Therefore,voidpointers are pointers that point to a value that has no type (and thus also an undetermined length and undetermined dereferencing properties).This g 阅读全文
posted @ 2014-03-13 13:47 guozqzzu 阅读(1952) 评论(0) 推荐(0) 编辑