A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Elors 中级黑马   /  2015-6-2 09:21  /  1263 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

之前写的一个交换两个变量值的方法,今天看发现编译器给出了警告,代码如下:
  1. void swap(int *x, int *y){
  2.     int *temp;
  3.     temp = *x;//第一处警告
  4.     *x = *y;
  5.     *y = temp;//第二处警告
  6. }
复制代码

当初记得是从视频中跟着写下来的,但是视频中编译却没有警告。

16 个回复

倒序浏览
你是拿windows32位系统编写的吗,装个虚拟机试试在linux下!!!
回复 使用道具 举报
aofex 发表于 2015-6-2 09:41
你是拿windows32位系统编写的吗,装个虚拟机试试在linux下!!!

是在Mac上Xcode编写的
回复 使用道具 举报
没有定义诶。。拿什么给你搞?
回复 使用道具 举报
Residual_mem 发表于 2015-6-2 13:05
没有定义诶。。拿什么给你搞?

不太明白你的意思。
回复 使用道具 举报
void swap(int *x, int *y){
    int *temp;
    temp = *x;//第一处警告
    *x = *y;
    *y = temp;//第二处警告
}


void swap(int *x, int *y){
    int temp;  //这里不用定义指针变量   你要明白指针变量是要装指针的  而 *x 是访问传进来实参的值
    temp = *x;
    *x = *y;
    *y = temp;
}
回复 使用道具 举报 1 0
恩赐_RWQqZ 发表于 2015-6-2 22:13
void swap(int *x, int *y){
    int *temp;
    temp = *x;//第一处警告

学习了:handshake
回复 使用道具 举报
temp定义错误
回复 使用道具 举报
学习学习!
回复 使用道具 举报
不对吧,应该是int temp吧
回复 使用道具 举报
不同环境上的编译器不太一样
回复 使用道具 举报
x,y,都没初始化,只是个形参,你就拿来赋值了!
回复 使用道具 举报
恩赐_RWQqZ 发表于 2015-6-2 22:13
void swap(int *x, int *y){
    int *temp;
    temp = *x;//第一处警告

说滴很好
回复 使用道具 举报
我是来看评论的
回复 使用道具 举报
⒈苆都s.兲憶 发表于 2015-6-6 23:34
x,y,都没初始化,只是个形参,你就拿来赋值了!

这里x和y是没有问题的,不要误导。
回复 使用道具 举报
temp改成int型就对了
回复 使用道具 举报
x,y,都没初始化,只是个形参,你就拿来赋值了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马