指针是变量的一种,里面是一个地址,通过这个地址找到要找的数据。
实质:单元的地址就是指针内容;
- 指针运算符
&是取地址的运算符,*是表示指针运算符
例:
int *p1,a;
p1=&a;
*p1
=3;
3.指针作函数参数
函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。作用是将变量的地址传送到另一个函数中。
参考例程:p1swapp2,
aswapb ;abcswap ;
注意:变量的地址赋予指向相同类型的指针变量
4.指针的运算–赋值运算:
指针变量初始化赋值;
把一个变量的地址赋予指向相同数据类型的指针变量;
例如:int a,
*pa ;
pa = &a ;
//把a的地址给pa,都是整型
把一个指针变量的值赋予相同类型的另一个指针变量;
int a, *pa = &a,
*pb ; pb = pa; // 把a的地址给pb;
空指针是对指针变量赋予0值得到的:
#define NULL 0
int *p=NULL; 空指针
p为指针变量,p=NULL表示空指针,不指向任何变量。
P !=NULL表示p不是空指针;
指针变量的使用步骤
- 定义指针变量;
2.给指针变量赋地址;
3.正常使用指针进行运算;
数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址。
. 字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘\0’作为串的结束。
字符数组是由于若干个数组元素组成的,它可用来存放整个字符串。
前面说过,当一个指针变量在未取得确定地址前使用是危险的,容易引起错误。
但是对指针变量直接赋值是可以的。因为C系统对指针变量赋值时要给以确定的地址。