笔者想在此分享一下自己最近学习的指针相关的内容。
指针是什么?
指针就是内存的一个地址,它能够增加变量的访问方法,也就是说,变量不仅能通过变量名来直接调用,也可以通过指针来访问。指针指向的就是这个变量所在的地址,通过访问这个地址,来调用地址所存储的变量。
指针的定义与使用。
int i = 0;
int *p = &i;
这里便是对一个指针p的定义。*表明变量p是一个指针,而&是取地址的操作符,也就是说,将变量i的地址存到指针p中。通过操作指针p,来对变量i进行间接的操作。定义指针的目的不是获取地址,而是间接访问该变量。*运算符是取指针所指向的值,以上面为例子:int y = *p + 3; 那么这个时候y就是3。
再举一个例子:
int x = 4, y = 5;
int *p = &x;
*p = y+2; 此时x = 7,p指向x
p = &y; 此时p指向y
cout << *p; 输出结果为5
指针与数组的简单结合。
数组名保存了数组的第一个元素的地址,也就是说,数组名其实就是一个指针,但是它是一个指针常量,也就是说,它的值不能改变。定义一个数组int i [9],一个指针p = i;
那么就可以通过指针p来访问数组的元素。p[3] 就是数组的第四个元素。
举一个用不同方式输出数组的例子:
之前是用for循环再cout<<i[a];来输出,现在有了不同的方法。
int array[9];int *p;
存入数据
for(int i = 0;i <= 8;i++)
{cout << array[i]; }
for(int i = 0;i<= 8;i++)
{cout << *(array+i);}
for(p = array; p<= array+8;p++)
{cout << *p;}
for(p = array,i = 0;i <= 8;i++)
{cout << *(p+i);}
for(p = array,i =0;i<=8;i++)
{cout << p[i];}
以上是指针的基础的基础的应用。下一篇,笔者想分享一下指针与动态内存分配的相关内容。