1.指针与地址
一元运算符&可用于取一个对象的地址。例如:int i=1;&i就是计算机地址。
一元运算符*是间接寻址或者间接引用运算符。例如:
int x=1,y;int ip*;
ip=&x
y=*ip;
2.指针与函数参数
c语言是以传值的方式将参数值传递给被调用函数,因此被调用函数不能直接修改主调函数中变量的值。例如:
void swap(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp
}
swap不能交换两个变量x,y的值。
可以使主调程序将指向所要交换的变量的指针传递给被调用函数,即swap(&a,&b);
void swap(int *px,int *py)
{
int temp;
temp=*px;
*px=*py;
*py=temp
}
3.指针与数组
int a[10];
int *pa;
pa=&a[0]//指针pa指向数组a的第一个元素的地址。等同于pa=a;
&a[2]=a+2;
例如返回字符串s的长度:
int strlen(char *s)
{
int n;
for(int i=;*s!='\0';s++)
n++;
return n;
}
在函数定义中,形式参数char s[];和char *s;是等价的。