指针(pointer)——c c++精髓

指针(pointer)——c c++精髓

ID:20537049

大小:25.18 KB

页数:8页

时间:2018-10-10

指针(pointer)——c c++精髓_第1页
指针(pointer)——c c++精髓_第2页
指针(pointer)——c c++精髓_第3页
指针(pointer)——c c++精髓_第4页
指针(pointer)——c c++精髓_第5页
资源描述:

《指针(pointer)——c c++精髓》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、指针(pointer)——C/C++的精髓!你不得不学好它!指针(pointer)指针是一种数据类型,用于存放某个变量的地址值。此时该指针被称为是指向该变量。一个指针的类型决定于它所指向的变量的类型。指针既可指向基本数据类型(即预定义数据类型),又可指向数组、函数、类和文件等用户自定义数据类型。指针可以初始化为0、NULL(即0,这是标准库头文件中定义的符号化常量)或一个地址。内容为0或NULL的指针不指向任何变量,称为空指针。例如:inta;int*ptr;指针ptr在下式中被初始化为指向变量a。ptr=&a; 两条语句也可组合地表示为:a=*ptr;其中&为存地址运算符,而*则为取内

2、容运算符。  ptr    a   int a,*ptr;ptr=&a;  指针与数组数组名是一个指向该数组的常量指针(其值不能改变),也是该数组中首单元的地址值。一维数组的指针如下:int  arr[5]={1,3,5,7,9};int*ptra;ptra=arr;  ptra     arr[0]=1arr[1]=3arr[2]=5arr[3]=7arr[4]=9 数组指针与数组名两者的异同:(1)整型变量指针ptr与整型数组指针ptra的说明格式相同,其间空格可放可不放。(2)arr既是数组名,又是数组地址,还是数组指针(称为常量指针),三位一体。因此arr可在一定范围内与ptra

3、等效地使用。[]可在一定范围内与*等效地使用。但arr不准重新赋值。例如:arr[0]即*arr即*ptra即ptra[0]=1arr[3]即*(arr+3)即*(ptra+3)即ptra[3]=7但arr的使用不如ptra灵活,如:不允许*arr++,而允许*ptra++。见以下例子:§2.2中[例1]的主程序voidmain(){ intarr[5]={1,3,5,7,9}; for(inti=0;i<5;i++)        cout<

4、arr+i)<

5、量指针)。第二种常量指针方式例如:intarr[5]={1,3,5,7,9};(arr为常量指针)。此处字符数组名是一个指向该数组的常量指针,它不能重新赋值。[例]两种指针方式及其地址和字符串内容//str_ptr_&_array_1.cpp#include#includevoidmain(){    char*nm="Nice";    charname[]="OK";    cout<<"Addressesofthepointers'nm'and'name'themselves:"<

6、&nm<<",'name'isat"<<&name<

7、at0x0065FDF4(栈区),'name'isat0x0065FDF0(栈区)'nm'pointsto0x42608C(数据区),'name'pointsto0x65FDF0(栈区)Characterstringsare'Nice'and'OK'respectively.*/说明:我在编程时的数据与此相差很大,读者需要自行地将上述代码运行一下...程序中cout<<(int)name用于读取指针内容即指针所指向的地址(字符串地址

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。