指针也是一种数据类型,其指向一段内存地址,指针类型依据其指向的数据类型而定,如指向整型的指针成为整型指针、指向字符的指针成为字符指针。灵活地运用指针能够编写出精炼而高效的程序。
1指针变量
指针变量就是指向某种数据类型地址的变量,其一般形式如下。
类型说明符 *指针变量名称标识符
其中,符号*来说明此变量是指针变量,类型说明符指定指针所在指向变量的数据类型。一旦指针变量的类型说明符确定了,那么该指针能指向的数据类型也就确定了
示例:分别定义一个整型、浮点型和字符型的指针变量,代码如下:
int main()
{
int             *pa;
float          *pb;
char          *pc;
}
指 针变量使用前必须要给其赋初值,否则会出问题。在定义指针变量的同时将其初始化,这也是一个好的编程习惯。给指针变量赋初值,也就是将变量的地址赋给指针 变量,这就涉及到运算符"&"和:"*"。其中,&为取地址运算符,*为指针运算符。下面举例说明指针运算的引用方法。
示例:应用指针变量计算两个数的和,代码如下:
#include <iostream.h>
//主函数
int main()
{
int sum = 0;
int a = 1;
int b = 2;
int *p;
int *q = &a;
p = &b;
sum = *p + *q;
cout<<sum<<endl;
return 0;
}
2指针与数组
数组其实就是一段内存地址,所以数组名就是这块地址的首地址,而指针指向的也是一段内存地址。因此,可以通过指针来引用数组及其元素。
示例:应用指针变量一次输出数组a的元素值,代码如下:
#include <iostream.h>
//主函数
int main()
{
int a[10];
int *p;
p = a;
//应用指针引用于为数组元素赋初值
for( int i=0; i<10; i++)
{
  *(a+i) = i;
}
//通过指针变量p来输出数组元素值
for( int j=0; j<10; j++)
{
  cout<<*(p+j)<<" ";
}
cout<<endl;
return 0;
}
运行结果:
0   1   2   3   4   5   6   7   8   9