首页 > 代码库 > 指针的value
指针的value
- 全局变量的默认初始化值为0,char为空字符——‘\0‘,string为"\0 "
3 char c; 4 string s; 5 const int a1 = 10; 6 7 int main() 8 { 9 cout << p << endl; 10 cout <<"a " <<a << endl; 11 cout <<"c "<< c << endl; 12 cout <<"s"<< s << endl; 13 char ch = ‘\0‘;//char ch=0; 14 cout << "ch" << ch << endl;
后面接2、3、4、5的代码 - 指针的value是所指对象的地址
1 int a2 = 1; 2 int *p2 = &a2; 3 cout << p2 << " " << &a2 << endl;
- 二级指针的value是一级指针的地址,二级指针解引用是一级指针的value,这与一级指针解引用一致(解引用表达式的结果为左值)
int **p3 = &p2; cout << p3 << " " << &p2 << endl; cout << *p3 << " " << p2 << endl;
- 指针算术移动的距离与所指对象类型有关,int型移动四个bytes,char型移动一个字节
1 cout << p2 << " "<<p2 + 1 << endl;
- 指针的下标操作p[n]等价于*(p+n)
1 int array[2] = { 1, 2 }; 2 p2 = array; 3 cout << p2 + 1 << " " << &p2[1] << endl;
- 从指针去理解迭代器,iterator提供了解引用、++、--、+n、-n,但不提供下标操作;raw pointer是一种随机迭代器,vector返回的iterator实际上是T*,non-random-iterator不支持+n操作,否则与非随机矛盾。
指针的value
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。