C语言 int temp = *a;这个是交换的是什么
时间: 2023-05-31 12:04:13 浏览: 64
这行代码并没有进行交换,它只是将指针变量a所指向的内存地址上的值赋给了变量temp。如果想要进行交换,需要再加上一行代码,如下:
int temp = *a;
*a = *b;
*b = temp;
这样就可以交换a和b指针所指向的内存地址上的值了。
相关问题
void reverse(int *a, int n) { int *p = a; int *q = a + n - 1; int temp; while (p < q) { temp = *p; *p = *q; *q = temp; p++; q--; } }用c语言
这是一个反转数组的函数,它使用了指针来交换数组中的元素。函数的参数包括一个整型指针a,指向要反转的数组的第一个元素,以及一个整数n,指定数组中元素的数量。
函数中首先定义了两个指针变量p和q,分别指向数组的第一个元素和最后一个元素。然后,使用一个临时变量temp来交换p和q指向的元素的值,直到p指针到达q指针的位置。
最后,数组中的元素就被反转了。以下是完整的代码实现:
```c
void reverse(int *a, int n) {
int *p = a;
int *q = a + n - 1;
int temp;
while (p < q) {
temp = *p;
*p = *q;
*q = temp;
p++;
q--;
}
}
```
#include<stdio.h> void fun (int *a,int *b); int main() { int a,b; scanf("a=%d,b=%d",&a,&b); fun(&a,&b); printf("a=%d b=%d\n",a,b); return 0; } void fun(int *a,int *b){ int temp; temp=*a; *a=*b; *b=temp; }c语言
这段代码实现了通过指针将两个变量的值进行交换的功能。首先在主函数中输入两个整数a和b,然后调用fun函数,将a和b的地址作为参数传递给fun函数。在fun函数中,将a所指向的变量值赋给temp,然后将b所指向的变量值赋给a所指向的变量,最后将temp的值赋给b所指向的变量。因此,通过指针操作,成功实现了a和b的值交换。最后在主函数中输出交换后的结果。