问题标题: C/C++ 指针

1
0
已解决
薛乘志
薛乘志
初级启示者
初级启示者

指针是c/c++的特色,通过指针可以实现大量好用的功能,在C++标准库中,list、vector等都或多或少使用了指针的方式实现动态内存分配

指针:

准确来说它不能存储任何直接可用的数据,顾名思义,指针即使用一个变量存储 存储另一个变量的内存地址

定义:

指针的定义是在变量名前加上“*”,如:

int *i;
string *s;
...

赋值:

指针不能直接赋值,它需要一个存储变量的地址,例:

...
int v = 20, *i;
i = &v; 
...

注:&为取址运算符,学过函数按址传参的应该有所了解

访问:

指针的访问需要使用 间接寻址运算符*,例:

int v = 20, *i;
i = &v;
(*i)++;
cout << *i;

注意,*运算符的优先级与+-相同,进行运算时需要加括号

空指针:

指针定义时将其定义为空是一个好习惯,这样 便于调试 和 防止意外使用其他变量地址

int *v = NULL;

NULL也可写为0

new与delete:

new可为指针分配一块内存空间

int *a = NULL;
a = new (int);
*a = 1;
cout << *a;

delete可释放指针已经使用的内存空间

string *a = NULL;
a = new (string);
*a = "aa";
cout << *a;
delete a;

指针与数组:

以后有时间再写


0
已采纳
曹博扬
曹博扬
初级天翼
初级天翼

这个有什么用吗

我要回答