/*
//2009年10月25日 2:00
//数组 指针 结构体 共用体 枚举
数组:
一维: 类型标识符 数组名[常量表达式];
int a[] = {1,2,3,4,5}; //合法
int a[5] = {1,2,3,4,5} ,b[5];
b=a; //非法
二维: 类型标识符 数组名[常量表达式1][常量表达式2]
int a[][4] = {{1},{},{2,3}}; //合法
strcpy(char[] , const char[])//第一个参数必须是字符数组
char str1[10];
str1 = "china"; //非法,不能把字符串常量赋值给字符数组名
//2009年10月25日9:30
指针:
指针的定义:基类型 *指针变量名;
& 取地址运算符;
* 指针运算符(间接访问运算符);
(*p++) 就是 (*(p++))
二维数组与指针:
int a[3][4];
int* p;
p = a[0];//可以
p = a; //不行 类型不一样 a指向a[0]
定义一个指向4个整形元素一维数组的指针:
int (*p)[4];
指向函数的指针:
int (*p)(int,int);
返回整形变量指针的函数:
int *p(int,int);
c语言中 函数的指针多用来做函数形参
double integral(double a, double b, double (*fun)(double));
指针数组:int *p[4] 四个元素都是指向整形int的指针
数组指针:指向数组的指针
int a[10],b[4][10],(*p)[10];
p = &a;
p = b;
p = &b[0];
引用(reference):
int a;
int &b = a;
在声明的时候必须初始化
指针变量 或者 变量作为形参 都是值传递
而引用作为形参 则是 地址传递
void swap(&a,&b);
int i,j;
swap(i,j);
结构体:
struct 结构体类型名
{成员列表};
结构体可以互相赋值,比如:
Student student1,student2;
student1 = student2;
Student *p;
p = &student1;
cout<<(*p).name;
cout<<(*p).num;
student1.name (*p).name p->name 相互等价
动态分配和撤销内存:
new 类型[初值];返回一个指针。
delete 指针变量;
注意new 和 delete 不是函数
共用体:
union 共用体类型名
{成员表列};
共用体类型名 共用体变量名;
共用体变量每一瞬间只能存放其中一种 而不是几种;
共用体变量地址和各成员地址一样;
不能再定义共用体的时候进行初始化 也不能将共用体作为函数参数。
枚举:
enum 枚举类型名 {枚举类型常量};
枚举元素是常量,默认从0开始计,若有改变,从改变的开始计。
typedef:
typedef int INTEGER;
typedef float REAL;
*/