指针兼容性问题:
- const指针不能赋值给非const指针.
- 非const指针可以赋值给const 指针,但前提是只是一层间接运算
1 Example: 2 int *pt1; 3 const *pt2; 4 const **pt3; 5 6 pt2=pt1;//OK 7 pt1=pt2;//NO 8 pt3=&pt2;//OK 9 pt3=&pt1;//NO double indirection 10 Problem: 11 pt1=pt2;//NO 12 pt3=&pt2;//OK 13 pt3=&pt1;//NO double indirection 14 15 Explain: 16 const n=5; 17 Int *p1; 18 Const int **p2; 19 //consumption p2=&p1; is right 20 p2=&p1; 21 *p2=&n;//OK ,but this mean p1=&n; 22 *p1=10;//OK because p1 is not const ,but that will be contradicted with consumption
指针兼容性问题:
const指针不能赋值给非const指针.
非const指针可以赋值给const 指针,但前提是只是一层间接运算
Example:
int *pt1;
const *pt2;
const **pt3;
pt2=pt1;//OK
pt1=pt2;//NO
pt3=&pt2;//OK
pt3=&pt1;//NO double indirection
Problem:
pt1=pt2;//NO
pt3=&pt2;//OK
pt3=&pt1;//NO double indirection
Explain:
const n=5;
Int *p1;
Const int **p2;
//consumption p2=&p1; is right
p2=&p1;
*p2=&n;//OK ,but this mean p1=&n;
*p1=10;//OK because p1 is not const ,but that will be contradicted with consumption
时间: 2024-12-28 15:52:11