看到啥就记下啥,努力!!
1.结构体
结构体是一个有多种类型的数据组成的整体。格式如下:
struct 结构体名 结构体变量(或者另外一种定义法)
{
unsigned num;
char name[20];//成员变量
。。。。
}(ps:结构体变量);
结构体引用方式为:结构体变量名.成员变量名,如上例子中为:
struct student stu1,stu2;//这就是定义结构体和结构体变量的过程
stu1.name="Teddy";//这就是引用方式。
2.共用体
跟结构体类型类似,区别在于这几种数据类型的变量共占同一段内存,共用体在任一时刻只有一个成员处于活动状态,且共用体变量所占的内存单元长度等于各个成员中最长的成员的长度。
3.用户自定义类型
使用关键字typedef,将已有的类型名用新的类型名来代替,以便提高程序的可移植性和可靠性:
typedef float FLOAT;//用后者代替前者
4.::符号的使用
(::)符号的意义是作用域运算符,描述变量作用域的作用。在C中如果全局变量与局部变量同名则在局部变量的作用域内全局变量是不可见的,为了在其中使用全局变量可用上面的运算符:
#include <iostream.h>
int a=5;
void main()
{
float a=13.1f;
cout<<a<<endl;//输出13.1
cout<<::a<<endl;//输出5
}
5.指针细节(LPTSTR)
指针首先肯定的是存的是地址,所以其占的内存空间大小应该是固定的。
在使用指针变量前一定要进行初始化或有确定地址,这里引入取址运算符“&”:int *p=&i;一个指针变量还可以赋以零值,这表明它不指向任何对象,作为指针变量通常写作NULL。
字符指针:char* st="vc++ program";
指针与数组:
int a[10];
a代表的就是元素a[0]的地址,若定义指针:int *pa;则pa=&a[0]和pa=a是等价的。
由于指针变量和数组的数组名在本质上是一样的,都表示地址值。因此指向数组的指针变量实际上也可以像数组变量那样使用下标,而数组变量又可像指针变量那样使用指针。例如:pa[i]与*(pa+i)及a[i]是等价的,*(a+i)与*(pa+i)是等价的。