某日小二参加XXX科技公司的C++工程师开发岗位2面:
面试官:指针、引用、解引用和取地址是C++中的重要概念,请问它们在语法和语义上有所不同?
小二:指针是一个变量,它存储了一个内存地址。
小二:引用是一个别名,它允许使用一个变量的多个名称来访问同一个内存位置。
小二:解引用是指使用*运算符来访问指针所指向的内存位置处的值。
小二:取地址是指使用&运算符来获取变量的地址。
指针是一个变量,它存储了一个内存地址。可以使用指针来访问和修改存储在该地址处的值。指针可以通过&运算符获取变量的地址,也可以通过*运算符解引用指针来访问该地址处的值。
int x = 10;
int* ptr = &x; *// 获取x的地址*
*ptr = 20; *// 修改x的值*
引用是一个别名,它允许使用一个变量的多个名称来访问同一个内存位置。引用可以看作是指针的一种简化形式,它不需要使用*运算符来解引用,也不需要使用&运算符来获取地址。
int x = 10;
int& ref = x; *// ref是x的引用*
ref = 20; *// 修改x的值*
解引用是指使用*运算符来访问指针所指向的内存位置处的值。
int x = 10;
int* ptr = &x;
int y = *ptr; *// 解引用ptr,获取x的值*
取地址是指