正文

C++个人回顾小结:指针2006-11-22 21:16:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/edwardguo/20636.html

分享到:

最近在复习C++,想把每次复习的东西挑重点的写在我的BLOG上面,以来最为个人复习和总结。二来把这些东西和大家共同分享一下。

指针

int a(5);

int *p=&a;

&a代表变量a的地址。指针p的赋值必须指向某个变量的地址。

 

int b[10];

int *p=b;

b相当于b数组第一个元素的地址&b[0]

所以上面可以这样直接赋值。

对于二维数组b[2][4]

可以这样通过指针调用元素:*(*(b+i)+j;  *(b[i]+j); *(b+i)[j]; *(&b[0][0]+4*i+j);

由此可以拓展到三维数组

int (*p)[3];

表示p所指向的是3个元素的一维数组

int b[2][3]={1,2,3,4,5,6};
 int (*q)[3];
 q=b;

可以通过
cout<<(*q)[i]<<endl;
输出数组b当中的第i个元素

函数的指针:

double sin(double x);

double(*pf)();

pf=sin;

表明pf是一个指向函数的指针,它所指向的函数是sin,这里用sin给pf赋值,实际上是让pf指针指向sin函数在内存中的入口地址。

另外指针比较具体的理解为

&表示取地址 *表示取内容

&a表示取变量a的地址 *p=&a就表示把a的地址放到指针p的内存单元的内容里面去。

当然,大家记住了在比如输出cout<<*p<<endl;当中,输出的可是*p的所指向内容而不是变量a的地址了哦。

 

阅读(4202) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册