C++ 指针变量的字面量以及其所指对象的字面量
指针变量的字面量以及其所指对象的字面量
#include <iostream>
using namespace std;
int main() {
int var = 20;
int *var_address;
var_address = &var;
cout << "Value of var variavle: " << var << endl;
// Value of var variavle: 20
cout << "Address stored in var_address variable: " << var_address << endl;
// Address stored in var_address variable: 0x61fe14
cout << "Value of *var_address: " << *var_address << endl;
// Value of *var_address: 20
return 0;
}
在上面的代码段中,首先定义了一个原始对象 int var = 20;
接着定义了一个指针 var_address
变量,同时声明该指针所指的原始对象的数据类型为整型,在指针前加上星号 *
可以获取到该指针所指的对象的具体值。紧接着,为指针变量 var_address
赋值,使用 &
获取到原始对象 var
的地址,并将这个地址储存到指针变量所在的位置。在上述过程中涉及到两种符号:*
用户获取指针所指原始对象的值,&
用于获取原始对象的地址。
使用原始对象直接修改对象值
#include <iostream>
using namespace std;
int main() {
int var = 20;
cout << var << endl;
// 20
var = 10;
cout << var << endl;
// 10
}
使用原始对象的地址修改原始对象的值
#include <iostream>
using namespace std;
int main() {
int var = 20;
cout << var << endl;
// 20
int *var_address;
var_address = &var;
*var_address = 10;
cout << var << endl;
// 10
}
C++ 指针,在形式上同其他变量一样,也是一个变量,只不过它的值在字面上表现为地址格式的字符串,定义一个指针,相当于定义了一个对于某个对象的引用,(删除线内的内容存在错误,今天才了解到指针和引用在 C++ 中是两个不同的概念)该指针提供了其所引用对象的所有接口,有了指针,就可以通过指针间接的操作原始对象。