找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4450|回复: 6
收起左侧

请问C语言程序中的*x=*y是什么意思?

[复制链接]
ID:891154 发表于 2021-7-15 19:54 | 显示全部楼层 |阅读模式
10黑币
#include<stdio.h>
#include<stdlib.h>

void Swap(int* x, int* y) {
        int tmp = *x;
        *x = *y;
        *y = tmp;
}
int main() {
        int num1 = 0;
        int num2 = 0;
        printf("请输入num1 num2的值:");
        scanf("%d %d", &num1, &num2);
        Swap(&num1, &num2);
        printf("num1=%d\nnum2=%d\n", num1, num2);
        system("pause");
        return 0;
}


最佳答案

查看完整内容

int* x //声明一个整型指针x int* y //声明一个整型指针y *x = *y //把*y的值赋给*x Swap() //交换函数 int main(void) { int a ,b; a = 2; b = 3; Swap(a,b); //交换完成后 a=3,b=2; }
回复

使用道具 举报

ID:549934 发表于 2021-7-15 19:54 | 显示全部楼层
int* x //声明一个整型指针x     
int* y //声明一个整型指针y
*x = *y //把*y的值赋给*x
Swap() //交换函数

int main(void)
{
  int a ,b;
a = 2;
b = 3;
Swap(a,b);
//交换完成后 a=3,b=2;
}
回复

使用道具 举报

ID:891154 发表于 2021-7-15 21:27 | 显示全部楼层
y16234 发表于 2021-7-15 21:17
int* x //声明一个整型指针x     
int* y //声明一个整型指针y
*x = *y //把*y的值赋给*x

还是不懂*x=*y的意思,两个指针变量可以这样写吗,x=*y可以理解
回复

使用道具 举报

ID:883242 发表于 2021-7-15 21:31 | 显示全部楼层
  1. #define swap(a,b) do{a^=b;b^=a;a^=b;}while(0)
  2.         int x=8,y=10;
  3.         swap(x,y);
复制代码
回复

使用道具 举报

ID:495628 发表于 2021-7-16 08:52 | 显示全部楼层
3042974988 发表于 2021-7-15 21:27
还是不懂*x=*y的意思,两个指针变量可以这样写吗,x=*y可以理解

*y的值是int b这个数存放的内存地址,本质上是一个unsigned int;
*x=*y的含义是,将int b的内存地址赋给*x,
那么*x的值就变成了int b的内存地址。

指针的赋值方式:
1、用变量的地址给指针赋值(求地址运算符&)
int a,*p;
p=&a;

2、指针给指针赋值
int a,*p1,*p2,*p3;
p1=&a;
p2=p1;
*p3=*p2;
回复

使用道具 举报

ID:277550 发表于 2021-7-16 10:03 | 显示全部楼层
int *x; //定义x,是一个指向一个整数值的指针(内存地址)。

*x=*y
其实进一步,可以理解成:是将y指针所指的值,赋给x指针所指的值。

&操作符   是取指针的地址。
回复

使用道具 举报

ID:934353 发表于 2021-7-16 10:15 | 显示全部楼层
3042974988 发表于 2021-7-15 21:27
还是不懂*x=*y的意思,两个指针变量可以这样写吗,x=*y可以理解

x在这里代表一个地址,*x指的是x地址所指向的变量,是不一样的含义
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表