C++指针(一)

    技术2022-07-16  67

    1.指针变量只能赋地址,0除外(赋0代表空指针)

    #include <iostream> using namespace std; int main() { int *px=0; //指针变量只能赋地址,0除外(0代表空值) cout<<px; //输出地址,空指针的地址为0 return 0; }

    2.指针变量需要进行初始化,否则野指针可能会给程序带来一些问题。

    3.空指针:仅仅用来存放一个地址,无其他意义。

    4.三种类型的const指针:

    #include <iostream> using namespace std; int main() { /* int a=12; void *p=&a; //空指针仅仅用来存放地址,也不能用来输出;要输出首先要进行强转或赋给其他的指针 cout<<*p<<endl; */ int a =1,b=2,c=3; int *p1=&a; cout<<*p1<<endl; void *p2=p1; int *p3=(int *)p2; cout<<"*p3= "<<*p3<<endl; const int *p4=&a; //指向常量的指针,只能改变指向的变量的值: cout<<"const int *p4:"<<*p4<<endl; //*p4=b; //error: assignment of read-only location '* p4' 不能通过指针改变指向变量的值 p4=&b; cout<<"const int *p4:"<<*p4<<endl; //可以改变指针本身的值 a=11; cout<<"const int *p4:"<<*p4<<endl; int * const p5=&b; //指针常量 cout<<"int *const *p5:"<<*p5<<endl; *p5=c; //可以改变指针指向的数据的值 cout<<"int *const *p5:"<<*p5<<endl; //p5=&c; //error: assignment of read-only variable 'p5' 不能改变指针本来的值 b=22; cout<<"int *const *p5:"<<*p5<<endl; const int *const p6=&c; cout<<"const int *const p6:"<<*p6<<endl; //指向常量的指针常量,双不能 return 0; }

     

    Processed: 0.010, SQL: 9