VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 276|回复: 2

[已解决]实用C++22课的疑惑

[复制链接]
17_avatar_middle
最佳答案
0 
在线会员 发表于 2019-11-1 23:10:52 | 显示全部楼层 |阅读模式
请问老师:

#include <iostream>
using namespace std;

void swap(int* a, int* b)
{
        int c;
       //为什么不能定义int* c呢?
        //*c=*a与下面的*a=*b不是一样吗?
        //c=*a理解为,把指针地址付给int变量,会不会出现地址超出int的取值范围的情况?

        c = *a;
        *a = *b;
        *b = c;
               
        return;
}

int main()
{
        int x = 5, y = 6;
        swap(x, y);
       //这里swap(&x,&y)与(x,y)同样输出正确,又是为什么??
        cout << x << " " << y << endl;
        
        return 0;
}


谢谢!
最佳答案
58_avatar_small
2019-11-1 23:27:08
  1. #include <iostream>
  2. using namespace std;

  3. void swap(int* a, int* b)
  4. {
  5.         int* c = NULL;
  6.         *c = *a;
  7.         *a = *b;
  8.         *b = *c;
  9.                
  10.         return;
  11. }

  12. int main()
  13. {
  14.         int x = 5, y = 6;
  15.         swap(x,y);
  16.         cout << x << " " << y << endl;
  17.         
  18.         return 0;
  19. }
复制代码




上一篇:C/C++ Windows 程序设计第4课作业问题
下一篇:MFC UI使用怎么那么难。
81_avatar_middle
最佳答案
3 
online_supermod 发表于 2019-11-1 23:25:31 | 显示全部楼层
int c;
说明这个变量定义了并分配了空间;

int* c; 只是定义了一个指向 int 类型变量的指针,并没有分配空间,或者说他并没有指向任何一个变量,这时候你直接用 *c = *a 不崩溃吗?
58_avatar_middle
最佳答案
52 
online_vip 发表于 2019-11-1 23:27:08 | 显示全部楼层    本楼为最佳答案   
bestAnswer
  1. #include <iostream>
  2. using namespace std;

  3. void swap(int* a, int* b)
  4. {
  5.         int* c = NULL;
  6.         *c = *a;
  7.         *a = *b;
  8.         *b = *c;
  9.                
  10.         return;
  11. }

  12. int main()
  13. {
  14.         int x = 5, y = 6;
  15.         swap(x,y);
  16.         cout << x << " " << y << endl;
  17.         
  18.         return 0;
  19. }
复制代码
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-7-29 07:56

Powered by CcTry.CoM

© 2009-2021 cctry.com

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