摘要:指针是c语言的精髓,也算是c++的精髓吧,要掌握它不是很容易,特别是与数组经常弄混,希望通过本文,你能够有一个清楚的认识.
首先我们看一下下面的例子: 【程序编程相关:深入浅出HOOKS(之零)】 (1)一维数组与指针 【推荐阅读:深入浅出HOOKS(之壹)】 p=a; 【扩展信息:深入浅出HOOKS(之叁)】 char a[10], *p; p是一个char类型的指针,它里面放的是数组a的首地址,即a[0];a这里有双重含义:地址,也可以看作是常量指针;结构,里面包含了10个char元素. 在这种情况下,指针可以完成数组的操作,例如,对于数组的访问,可以用指针进行,也可以想数组一样对数组单元赋值与取址.但是数组不能看做普通指针,应该理解成一个固定的地址,她是在编译期间确定的,也可以理解成常量指针. 但是,由于数组名的双重含义,决定了他自己的特性,不信请看下面的程序: #include <iostream> #include <stdlib.h> using namespace std;int main(int argc, char *argv[])
{ int a[10]={1,2,3,4,5,6,7,8,9,10}, *p; p=a;cout<<a<<endl;
cout<<&a<<endl; cout<<&a[0]<<endl;cout<<p<<endl;
cout<<&p<<endl; cout<<&p[0]<<endl;... 下一页