指针是一个变量,其值是另一个变量的地址。星号*表示指针,int * p 告诉编译器变量“p”是一个指针,其值是存储整数变量的存储位置的地址。同样,float * f; 告诉编译器变量“ f”是一个指针,其值是存储浮点变量的存储位置的地址。以下列代码为例
int a = 10;
int *b;
int c;
b = &a;
c = *b;
printf(“b=%d and c=%d\n”,b,c);
其中a是一个变量,他的值是10,b是一个指针,通过语句 b = &a 将a的地址传给了指针b。而通过c = *b 将指针b内地址所指向的值,即a的值赋予c。
void Exchg1(int x, int y)
{
int tmp;
tmp = x;
x = y;
y = tmp;
printf("x = %d, y = %d\n", x, y);
}
main()
{
int a = 4,b = 6;
Exchg1(a, b);
printf("a = %d, b = %d\n", a, b);
return(0);
}
void Exchg2(int *px, int *py)
{
int tmp = *px;
*px = *py;
*py = tmp;
printf("*px = %d, *py = %d.\n",*px, *py);
}
main()
{
int a = 4,b = 6;
Exchg2(&a, &b);
printf("a = %d, b = %d.\n", a,b);
return(0);
}
void Exchg3(int &x, int &y)
{
int tmp = x;
x = y;
y = tmp;
printf("x= %d,y = %d\n", x, y);
}
main()
{
int a = 4,b =6;
Exchg3(a, b);
printf("a= %d, b = %d\n", a, b);
return(0);
}
你答对了吗