C++指针(2012.06.26&06.27)
2012-06-27 17:47
218 查看
当你对一件事情的理解越来越深,变化就势在必行——姬十三。
1.指针
指针是用来保存内存地址的变量。指针只能用来存储与它变量类型相同的指针。
几个为什么!
为什么使用指针?(1)快速处理堆中存放的大型数据;(2)快速访问类的成员数据和函数;(3)以别名的方式向函数传递参数。(囧,目前为止一个都没用过呢。)
为什么要对指针进行初始化?因为如果不初始化,那么该指针就是一个失控指针,它可以指向任何地址。并且对该地址的值进行修改和删除。
拓展:变量提供了程序可以操作的有名字的存储区。C++中的每一个变量都有特定的类型,该类型决定了变量的内存大小和布局、能够存储于该内存中的值得取值范围以及可应用在该变量上的操作集。C++程序员常常把变量成为“变量”或“对象(object)”——摘自《C++primer中文版 第四版》
左值和右值的概念
(1)左值(lvalue):可以出现在赋值语句的左边或右边
(2)右值(rvalue):只能出现在赋值语句的右边
回到正题上来,我们先来总结一下(& 和 *)都有哪些用法(以下方程序为例):
&:(1)&s中的&符号是取地址(adress-of)操作符;(2)&引用操作符,不过只能出现等号左边。
*:(1)string *sp;*表明sp是一个指针变量;(2)cout<<*sp;此处的*表示的是解引用运算符。作用就是读取放于内存sp处的数值。
**:指向指针的指针.
(容易混淆的概念:指针地址,指针保存的地址和该地址的值)
诡异问题:
如果写作#include<string.h>就不行。百度了一下,是这样解释的,
1.指针
指针是用来保存内存地址的变量。指针只能用来存储与它变量类型相同的指针。
几个为什么!
为什么使用指针?(1)快速处理堆中存放的大型数据;(2)快速访问类的成员数据和函数;(3)以别名的方式向函数传递参数。(囧,目前为止一个都没用过呢。)
为什么要对指针进行初始化?因为如果不初始化,那么该指针就是一个失控指针,它可以指向任何地址。并且对该地址的值进行修改和删除。
拓展:变量提供了程序可以操作的有名字的存储区。C++中的每一个变量都有特定的类型,该类型决定了变量的内存大小和布局、能够存储于该内存中的值得取值范围以及可应用在该变量上的操作集。C++程序员常常把变量成为“变量”或“对象(object)”——摘自《C++primer中文版 第四版》
左值和右值的概念
(1)左值(lvalue):可以出现在赋值语句的左边或右边
(2)右值(rvalue):只能出现在赋值语句的右边
回到正题上来,我们先来总结一下(& 和 *)都有哪些用法(以下方程序为例):
&:(1)&s中的&符号是取地址(adress-of)操作符;(2)&引用操作符,不过只能出现等号左边。
*:(1)string *sp;*表明sp是一个指针变量;(2)cout<<*sp;此处的*表示的是解引用运算符。作用就是读取放于内存sp处的数值。
**:指向指针的指针.
(容易混淆的概念:指针地址,指针保存的地址和该地址的值)
诡异问题:
#include <stdio.h> #include <iostream> #include <string> using namespace std; int main() { string s("hello world"); string *sp=&s;// sp holds the adress of s std::cout<<*sp<<endl; return 0; }
如果写作#include<string.h>就不行。百度了一下,是这样解释的,
#include <string.h>这是C语言字符数组的操作函数,不是C++ 的string类
相关文章推荐
- C++引用指针吉林快三开奖网源码出售 & 构造函数
- c & c++中的“指针、指针变量、指针变量的类型”
- C++内存管理——指针&&数组
- c++:成员指针运算符 .* 和 ->*
- C++中通过指针修改类内私有成员变量 & 类的大小
- 详解C++中指针(*)、取地址(&)、解引用(*)与引用(&)的区别 (完整代码)
- C++中指针*和引用&的区别
- c++中"指针"终结理解
- [C++基础]019_指针和引用(int*、int&、int*&、int&*、int**)
- [C++基础]019_指针和引用(int*、int&、int*&、int&*、int**)
- C/C++【初级】之一 指针(*)、取地址(&)、解引用(*)与引用(&)的概念
- 【C/C++语法外功】传值&传引用&传指针
- 指针赋值 int a[5]={.... ...}, a 、&a[0]、 &a三者之间的区别 浅析 C/C++求职面试必备考点(五)
- C++中指针和引用的区别-转载fu_jiangtao<chinaunix>
- 浅谈C/C++回调函数(Callback)& 函数指针
- C++函数的传值调用&指针调用&引用调用
- [C/C++]数组与指针——a,a[0],&a,&a[0]区别小结
- C++ const 指针 & 指向const对象的指针
- 【C/C++语法外功】传值&传引用&传指针
- C++二维数组&指针