C++基础知识 -数组,指针与字符串

1. 数组
   声明: int A[10],B[10]
   初始化: int a[3]={1,1,1}
          对于将全部元素都初始化的情况,可以不用说明元素个数
          int a[]={1,1,1}
          部分初始化时,必须给出元素的个数
          float fa[5]={,1.0,2.0}
          多维数组的初始化
          int a[2][3]={{1,0,0},{0,1,0}};

2. 使用数组名作为函数参数
     使用数据传递数据时,传递的是地址,子函数中对数组元素进行改变,主调函数实参数组相应元素值也会改变
3. 对象数组
     Location A[2] = {Location(1,2),Location(3,4)};

4. 指针的声明
    数据类型 *标志符
5. * 指针运算符
   &取地址运算符
   int a=1;
   int *p;
   p=&a;
   or
   int *p=a 定义并初始化

6. 指向常量的指针, 不能修改所指对象的值,但可以改变指针的指向
   const char *name1 = "John";
   *name1="1";
7. 常量指针,这时指针本身的值也不能被改变
   char *const name2="Johon"
  
  

7. void 类型指针
   任何类型的指针都可以赋值给void类型指针
   void *pv
   int *point ;
   int i;
   pv=&i;
   point = (int *)pv;强制转换void to int

8. 指针移动
   p+i, p-i, *p取得当前值

9. int *p;
   p=0;  将p设为空指针,不指向任何地址: 从指针诞生到确定值,指针指向的值是随机的

10. 指针数组
   如果数组的每个元素都是指针变量,这个数组就是指针数组

11. 用指针作为函数参数

12. 指针型函数
    如果一个函数的返回值是指针,这个函数就是指针型函数,使用指针型函数的主要目地就是把大量数据从被调用函数返回到主函数中

    数据类型 *函数名(参数表)
    {
     }

13. 指向函数的指针
指向函数的指针就是专门用来存放函数代码首地址的变量,在程序中可以像使用函数名一样使用,来调用函数
声明形式
数据类型 (*指针名)(形参表)

void fun1(float a);
void fun2(float b);
void (*fun)(float);
int main(){
float pi=3.13;
fun=fun1;
fun(a);
fun=fun2;
fun(b);
}
void fun1(float a)
{
}

14. 对象指针
对象所占据的内存空间只是用于存放数据成员,函数成员不在每一个对象中都存储副本
Point *p
Pint A(3,4);
p=&A;
p->GetX();

14. this指针
15. 指向类的非静态成员的指针
    声明
    数据类型 类名::*指针名
    数据类型 类名::*指针名(形参表)
    初始化普通变量--数据成员
    指针名=&类名::数据成员  访问方式 类对象. *指针名 或者 对象指针名->*指针名
 
    初始化函数成员
    指针名=类名::函数成员  访问方式 类对象. *指针名(参数表) 或者 对象指针名->*指针名(参数表)

    Point A(4,5)
    Point *p1=&A;
    int (Point::*px)=&Point::x;
    int (Point::*pfun())=Point::GetX;

    A.*px;
    A.*pfun()

16. new delete delete[] malloc free
    p1->GetX()

猜你喜欢

转载自ssh-2009-126-com.iteye.com/blog/1940309