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=0;*s!='