欢迎来到天天文库
浏览记录
ID:12366006
大小:141.00 KB
页数:13页
时间:2018-07-16
《visual c++ 2010 - 指针》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、九、指针1、指针指针是存储内存地址的变量。内存:计算机内存被划分成按顺序编号的内存单元。每个变量都位于某个独特的内存单元中,这被称为地址。获取变量的内存地址:要获得变量的内存地址,可以使用地址运算符&,它返回对象在内存中的地址。//使用地址运算符includeintmain(){usingnamespacestd;unsignedshortshortVar=1;unsignedlonglongVar=65535;cout<<"shortVar:t"<2、out<<"longVar:t"<3、地址的内存。指针不过是另一种类型的变量而已。指针名:由于指针也是变量,因此可以使用任何合法的变量名。一般的命名规则是,所有的指针名都以p开头。int*pAge=0;pAge被初始化为0。值为0的指针被称为空指针。所有指针在创建时都应该进行初始化。如果不知道要将什么赋给指针,就将0赋给它。没有被初始化的指针被称为失控指针(wildpointer),因为不知道它将指向什么——可能指向任何东西!失控指针是非常危险的!注意:a、一定要初始化所有的指针。要让指针存储一个地址,必须将该地址赋给它。例:unsignedshortinthowOld=50;unsignedshortint*pAge4、=0;pAge=&howOld;更少的步骤:unsignedshortinthowOld=50;unsignedshortint*pAge=&howOld;获取指针指向的变量的值:使用指针可以获取指针指向的变量的值。通过指针访问变量的值被称为间接访问。间接访问意味着访问位于指针存储地址处的值。指针提供了一种间接方式来获取存储地址处的值。指针的类型告诉编译器,指针存储地址处的对象需要多少内存。unsignedshortint*pAge=0;这告诉编译器,该指针(为了存储地址需要4个字节)存储一个类型为unsignedshortint的对象地址,该对象本身需要2个字节。使用间接运算符解5、除引用:间接运算符(*)也被称为解除引用(dereference)运算符。常规变量能够直接访问它的值。如:unsignedshortintyourAge;yourAge=howOld;指针能够间接地访问其指向的值。如:unsignedshortintyourAge;yourAge=*pAge;指针变量pAge前面的间接运算符(*)的含义是:存储在该处的值。如果不使用间接运算符:yourAge=pAge;则是试图将pAge的值(一个内存地址)赋给yourAge。编译器很可能会对此提出警告,指出可能是在犯错。星号(*)的其他用途:a、用于指针时,星号的用途有两种:声明指针和用作解除引用6、运算符。声明指针时,*是声明的组成部分,位于被指向的对象的类型后面,如:unsignedshort*pAge=0;对指针解除引用时,解除引用(间接)运算符指出要访问指针指向的内存单元中的值,而不是地址本身。如:*pAge=1;b、星号还可用作乘法运算符。编译器能够根据上下文知道该调用哪个运算符。指针、地址和变量:对指针、其存储的地址及其存储的地址处的值进行区分至关重要。inttheVariable=5;int*pPointer=&theVariable;theVariable被声明为一个int变量,被初始化为5;pPointer被声明为一个int指针,并被初始化为theVariab7、le的地址。pPointer是一个指针,存储的是theVariable的地址。pPointer存储的地址处的值为5。使用指针来操纵数据:除了使用间接运算符来查看存储在指针指向的位置处的数据外,还可以对数据进行操作。将变量的地址赋给指针后,可以使用该指针来访问它指向的变量中的数据。//使用指针来操纵数据#includetypedefunsignedshortintUSHORT;intmain(){usingnamespacestd;USHORTmyA
2、out<<"longVar:t"<3、地址的内存。指针不过是另一种类型的变量而已。指针名:由于指针也是变量,因此可以使用任何合法的变量名。一般的命名规则是,所有的指针名都以p开头。int*pAge=0;pAge被初始化为0。值为0的指针被称为空指针。所有指针在创建时都应该进行初始化。如果不知道要将什么赋给指针,就将0赋给它。没有被初始化的指针被称为失控指针(wildpointer),因为不知道它将指向什么——可能指向任何东西!失控指针是非常危险的!注意:a、一定要初始化所有的指针。要让指针存储一个地址,必须将该地址赋给它。例:unsignedshortinthowOld=50;unsignedshortint*pAge4、=0;pAge=&howOld;更少的步骤:unsignedshortinthowOld=50;unsignedshortint*pAge=&howOld;获取指针指向的变量的值:使用指针可以获取指针指向的变量的值。通过指针访问变量的值被称为间接访问。间接访问意味着访问位于指针存储地址处的值。指针提供了一种间接方式来获取存储地址处的值。指针的类型告诉编译器,指针存储地址处的对象需要多少内存。unsignedshortint*pAge=0;这告诉编译器,该指针(为了存储地址需要4个字节)存储一个类型为unsignedshortint的对象地址,该对象本身需要2个字节。使用间接运算符解5、除引用:间接运算符(*)也被称为解除引用(dereference)运算符。常规变量能够直接访问它的值。如:unsignedshortintyourAge;yourAge=howOld;指针能够间接地访问其指向的值。如:unsignedshortintyourAge;yourAge=*pAge;指针变量pAge前面的间接运算符(*)的含义是:存储在该处的值。如果不使用间接运算符:yourAge=pAge;则是试图将pAge的值(一个内存地址)赋给yourAge。编译器很可能会对此提出警告,指出可能是在犯错。星号(*)的其他用途:a、用于指针时,星号的用途有两种:声明指针和用作解除引用6、运算符。声明指针时,*是声明的组成部分,位于被指向的对象的类型后面,如:unsignedshort*pAge=0;对指针解除引用时,解除引用(间接)运算符指出要访问指针指向的内存单元中的值,而不是地址本身。如:*pAge=1;b、星号还可用作乘法运算符。编译器能够根据上下文知道该调用哪个运算符。指针、地址和变量:对指针、其存储的地址及其存储的地址处的值进行区分至关重要。inttheVariable=5;int*pPointer=&theVariable;theVariable被声明为一个int变量,被初始化为5;pPointer被声明为一个int指针,并被初始化为theVariab7、le的地址。pPointer是一个指针,存储的是theVariable的地址。pPointer存储的地址处的值为5。使用指针来操纵数据:除了使用间接运算符来查看存储在指针指向的位置处的数据外,还可以对数据进行操作。将变量的地址赋给指针后,可以使用该指针来访问它指向的变量中的数据。//使用指针来操纵数据#includetypedefunsignedshortintUSHORT;intmain(){usingnamespacestd;USHORTmyA
3、地址的内存。指针不过是另一种类型的变量而已。指针名:由于指针也是变量,因此可以使用任何合法的变量名。一般的命名规则是,所有的指针名都以p开头。int*pAge=0;pAge被初始化为0。值为0的指针被称为空指针。所有指针在创建时都应该进行初始化。如果不知道要将什么赋给指针,就将0赋给它。没有被初始化的指针被称为失控指针(wildpointer),因为不知道它将指向什么——可能指向任何东西!失控指针是非常危险的!注意:a、一定要初始化所有的指针。要让指针存储一个地址,必须将该地址赋给它。例:unsignedshortinthowOld=50;unsignedshortint*pAge
4、=0;pAge=&howOld;更少的步骤:unsignedshortinthowOld=50;unsignedshortint*pAge=&howOld;获取指针指向的变量的值:使用指针可以获取指针指向的变量的值。通过指针访问变量的值被称为间接访问。间接访问意味着访问位于指针存储地址处的值。指针提供了一种间接方式来获取存储地址处的值。指针的类型告诉编译器,指针存储地址处的对象需要多少内存。unsignedshortint*pAge=0;这告诉编译器,该指针(为了存储地址需要4个字节)存储一个类型为unsignedshortint的对象地址,该对象本身需要2个字节。使用间接运算符解
5、除引用:间接运算符(*)也被称为解除引用(dereference)运算符。常规变量能够直接访问它的值。如:unsignedshortintyourAge;yourAge=howOld;指针能够间接地访问其指向的值。如:unsignedshortintyourAge;yourAge=*pAge;指针变量pAge前面的间接运算符(*)的含义是:存储在该处的值。如果不使用间接运算符:yourAge=pAge;则是试图将pAge的值(一个内存地址)赋给yourAge。编译器很可能会对此提出警告,指出可能是在犯错。星号(*)的其他用途:a、用于指针时,星号的用途有两种:声明指针和用作解除引用
6、运算符。声明指针时,*是声明的组成部分,位于被指向的对象的类型后面,如:unsignedshort*pAge=0;对指针解除引用时,解除引用(间接)运算符指出要访问指针指向的内存单元中的值,而不是地址本身。如:*pAge=1;b、星号还可用作乘法运算符。编译器能够根据上下文知道该调用哪个运算符。指针、地址和变量:对指针、其存储的地址及其存储的地址处的值进行区分至关重要。inttheVariable=5;int*pPointer=&theVariable;theVariable被声明为一个int变量,被初始化为5;pPointer被声明为一个int指针,并被初始化为theVariab
7、le的地址。pPointer是一个指针,存储的是theVariable的地址。pPointer存储的地址处的值为5。使用指针来操纵数据:除了使用间接运算符来查看存储在指针指向的位置处的数据外,还可以对数据进行操作。将变量的地址赋给指针后,可以使用该指针来访问它指向的变量中的数据。//使用指针来操纵数据#includetypedefunsignedshortintUSHORT;intmain(){usingnamespacestd;USHORTmyA
此文档下载收益归作者所有