1.指针是什么?
在内存单元中,我们可以通过一个地址找到一个变量,一个变量的地址就叫做该变量的“指针”。如果定义一个变量,该变量专门用来存放另一个变量的地址,则称它为指针变量。
指针变量的值(即指针变量中存放的值)是地址(即指针)。
2.怎样定义指针变量
int *p;
(1)指针变量是p,而不是*p
,前面的*只是用来表示该变量为指针变量。
(2)在定义指针变量时必须制定基类型,即int。
3.怎样操作指针变量
一般对指针变量的操作有两种(1)给指针变量赋值;(2)访问指针变量所指向的对象
给指针变量赋值:使用取地址符&,例如
int *p;
int a=1;
p=&a;
访问指针变量所指向的对象:使用“间接访问”符 *号
printf(“%d”,*p);
4.指针变量作为函数参数
以下面的函数为例:
void swap(int *p1,int *p2)//swap函数的形参为两个指针变量
{
int temp;
temp = *p1;
*p1=*p2;
*p2=temp;
}
int main()
{
int a=1,b=2;
int *point1,*point2;
point1=&a;point2=&b;
swap(point1,point2);//调用时需要注意形参的类型
}
注意:不能通过企图改变指针形参的值而使指针实参的值改变
将swap函数改成如下形式
void swap(int *p1,int *p2)
{
int *temp;
temp = p1;
p1=p2;
p2=temp;
}
C语言中实参变量与形参