指针

来源:互联网 发布:图片合成软件代码 编辑:程序博客网 时间:2024/06/05 16:44

指针

void指针

一般来说指针可以指向的数据类型必须和定义的指针的类型匹配,在不同的赋值类型之间赋值是错误的,比如

     int a = 5;    char *p =a;

用void修饰的指针可以只想任何的数据类型。但是void修饰的指针在指向指针时,必须强制转换,比如

     int a = 5;     int *p1=&a;     void *p2=p1;     int *p4=(int *)p2;    char *p =a;

const指针

1.关键字const放在指针类型前面申明一个指向常量的指针,此时不可以通过指针的操作改变它指向的数据,但是至真可以指向其他的数据;
2.关键字const放在*和指针名的中间,申明一个指针常量,此时指针本身的值不能发生改变,也不能指向其他的数据。
3.关键字const放在指针类型前面和*和指针名的中间,则申明了一折指向常量的常指针。
eg1:下列代码输的的值为?

int a = 5;    const int*p1 = &a;    *p1 = 6;    cout << a;

A:5 B:6 C:编译错误
答案:
eg2:下列代码输的的值为?

int a = 5,b = 6;    int* const p1 = &a;    p1 = &b;    cout << *p1;

A:5 B:6 C:编译错误
答案:

指针与数组

指针数组VS数组指针

int(*p)[5];  //表示定义了一个指向数组的指针p,数组的元素有5个,类型为整形int *p[5]//表示定义了一个指针数组p,数组的元素有5个,类型为整形指针
0 0