主题:[讨论]指针可以理解为快捷方式吗?
xiaomm09
[专家分:30] 发布于 2011-02-11 09:36:00
很多人都说指针是C/C++的精粹所在,个人也感觉很难学好,感觉就是比较抽象的东西,很难理解。曾经有人说:可以把指针理解为指向变量的快捷方式,请问这样对吗?欢迎讨论,谢谢。
回复列表 (共2个回复)
沙发
eastcowboy [专家分:25370] 发布于 2011-02-11 19:40:00
两者有相似之处,但不完全一样。指针拥有更多的功能,比如,指针可以移动:
int arr[5];
int* p = &arr[0];
p += 3; // 往后移动三个位置
又比如,可以计算两个指针之间的距离:
int arr[5];
int* p1 = &arr[1];
int* p2 = &arr[4];
ptrdiff_t distance = p1 - p2; // 计算p1和p2之间的距离
这些东西是快捷方式所不具备的。
板凳
xiaomm09 [专家分:30] 发布于 2011-02-12 13:00:00
多谢指点,听您一说一下子清楚了。
刚开始学C,被指针变量、指针、地址...搞晕了。
我来回复