Cpp_issue
This is a page about »Cpp_issue«.
cpp_issue
一些基础讨论
指针大小
const 关键字
// 常变量
const int x = 10; // x 不能修改
x =20; // 这是错的
// 注意:
const int xxx;
int const yyy;
/*
const int xxx;
const 放在类型前面表示这是一个常量类型的变量。这种写法更符合自然语言的习惯,读作 “常量整数 xxx”。
int const yyy;
const 放在变量名后面,但在类型之后,语义上与前者相同。这种写法有时更容易理解复杂的指针声明,因为它遵循从右到左的阅读顺序。
*/
// 指针
// 指向常量的指针
const int* ptr = &x;
*ptr = 20; //这是错的,*ptr 的值不能通过 ptr 修改,但是 ptr可以指向其他地址
int y = 20;
prt = &y;
// 常量指针 ptr 的地址不能修改,但是 *ptr 可以修改
int* const ptr = &x;
int z = 30;
*ptr = y;
prt = &z; // 这是错误的
// 指向常量的常量指针
const int* const ptr = &x;
// *ptr 和 ptr 都不能被修改
// *ptr = 20; // 错误,不能修改 *ptr
// int z = 30;
// ptr = &z; // 错误,不能修改 ptr 指向的地址
// 引用
// 对常量的引用
const int &ref = x;
// ref 不能用于修改 x 的值
// ref = 20; // 错误,不能修改 ref 指向的值
值&指针&引用
引申面试题:
指针和引用的区别?指针占内存?引用占内存?