C:将指针转换为整数

标签 c

我想编写一个方法,它接受两个指向 int 的指针并更改它们指向的值。像这样的东西:

int main() {
    int a = 3;
    int b = 1;
    change(&a, &b);
    return 0;
}

void change(int *a, int *b) {
    int t = a;
    *a = *b;
    *b = *t;
}

我无法理解如何保存 a 的副本并稍后从 b 指向它。

最佳答案

你这样做:

int temp = *a; // remember actual value "a" points to
*a = *b; // copy value "b" points to onto value "a" points to (will overwrite that value, but we have a copy in "temp")
*b = temp; // now copy value "a" originally pointed to onto value "b" points to

关于C:将指针转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6058307/

相关文章:

c - 结构体函数指针错误

c - C 中的快速 union 实现

c - 在 Ubuntu 10.04 上编译时未声明 PATH_MAX

c - 使用 getchar 计算单词中字符数时的奇怪行为

c - 如何正确计算 C 中的单词、换行符和字符

在 C 中将 time_t 转换为给定格式的字符串

c - 如何将十六进制转换为十进制?

sql-server - 从跨平台应用程序连接到 MS SQL Server

客户端套接字不会在聊天客户端中使用 socket() 函数打开

c++ - 如何在 Turbo C++ 中创建基于字符的数组?