关于指针:
1.地址运算符:&
用来读变量的地址
scanf("%d",&a);
这条语句说:函数在一开始定义了一个变量a,并在内存中赋了值。
当键盘输入了一个数,这条语句就会寻找这个变量在内存中的地址,并赋值。
2.简介:
一般来讲:指针是指一个其数值为地址的变量。
char p;
char * fp;
fp = &p; //p在这里指的是一个变量,fp则是一个常量,这个常量的值为p的内存地址。
间接运算符(也叫取值运算符)*:用来获取常量fp为地址的变量的值。
char a;
char * fa;
char b;
fa = &a;
b = *fa;
//在这里,b == a;
//fa得到变量a的地址,*fa就把fa为地址的变量取出来,赋值给b。
//所以a == b;
指针声明:
并不是我们所想的那样简单:
pointer ptr;
因为指针指向变量的地址,变量的类型多样,因而指针的类型也应与变量类型一样才对。
所以:
int *fp;
char *fa;
float *ff;
类型标识符表明被指向变量的类型,* 表示该变量为一个指针。
eg:交换两个数:
void change(int *,int * );
int main(void){
int a = 1,b = 2;
change(&a,&b);
printf("%d %d",a,b);
return 0;
}
void change (int * a,int * b){
int temp = 0;
temp = *a;
*a = *b;
*b = temp;
}
通过指针,子函数可以操纵上一级函数的变量。