VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 562|回复: 2

[已解决]第34课中主函数代码中int a,b没有赋值时编译出错,但是老师的不会?

[复制链接]
63_avatar_middle
最佳答案
1 
donate_vip 发表于 2019-10-24 20:44:31 | 显示全部楼层 |阅读模式
//--------------主函数代码------
  1. int main()
  2. {
  3.        
  4.         int arrnNum[] = { 5,12,9,61,18 };
  5.         int minNum, maxNum;  //这里老师没有赋值
  6.         Count ob;
  7.         ob.get_max_min(arrnNum, sizeof(arrnNum) / sizeof(int),NULL, &minNum);
  8.         //ob.get_max_min(arrnNum, sizeof(arrnNum) / sizeof(int), &maxNum, &minNum);
  9.         cout << "min number is " << minNum << endl;
  10.         cout << "max number is " << maxNum << endl;

  11. }
复制代码

[编译时的出错提示]
严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4700        使用了未初始化的局部变量“maxNum”        CountMaxMin        d:\我的文档\vsproject\studyc++\countmaxmin\countmaxmin\countmaxmin.cpp        20       

//----------------函数代码--------------
  1. void Count::get_max_min(int arrnNum[], int numLen, int* max/*=NULL*/, int* min/*=NULL */)
  2. {
  3.         //if (numLen < 0 || (!max && !min)) return;    //如果数组为0元素,或者max 和min 值都为 NULL时,返回
  4.         // ! 取反  NULL 取反就是 不为空  
  5.         //运算符号! 表示布尔"非" :如果 x 为 True ,返回 False 。如果 x 为 False ,它返回 True
  6.         if (numLen < 0 || (max == NULL && min ==NULL)) return;
  7.         //max == 空

  8.         int maxNum = arrnNum[0];
  9.         int minNum = arrnNum[0];

  10.         for (int i=0; i < numLen; ++i)
  11.         {
  12.                 if (maxNum < arrnNum[i])
  13.                 {
  14.                         maxNum = arrnNum[i];
  15.                 }
  16.                 if (minNum>arrnNum[i])
  17.                 {
  18.                         minNum = arrnNum[i];
  19.                 }

  20.         }

  21.         if (max) *max = maxNum;

  22.         if (min) *min = minNum;


  23. }
复制代码
最佳答案
51_avatar_small
2019-10-24 21:46:15
不同版本的编译器对于一些不安全的写法做出的反应不同,老版本可能只是警告,新版本可能就会认为是错误。所以既然楼主当前使用的编译器已经提示为错误了,那么这块就按照提示的来修改




上一篇:在第30课类的声明中,我采用如下代码实现,类里面的公开函数正确吗?
下一篇:屏幕坐标和客户区坐标
51_avatar_middle
最佳答案
90 
online_admins 发表于 2019-10-24 21:46:15 | 显示全部楼层    本楼为最佳答案   
bestAnswer
不同版本的编译器对于一些不安全的写法做出的反应不同,老版本可能只是警告,新版本可能就会认为是错误。所以既然楼主当前使用的编译器已经提示为错误了,那么这块就按照提示的来修改
58_avatar_middle
最佳答案
58 
online_vip 发表于 2019-10-26 13:24:09 | 显示全部楼层
使用了未初始化的局部变量“maxNum = xxx,那就初始化。
这些年C++的新标准很多大公司都吐槽,没什么亮眼的更新,检查越来越严格了,因此很多大公司都不用新标准。360是vs2008写的,电脑管家是2015写的,建议楼主不用太纠结。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

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

关闭

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

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

GMT+8, 2023-4-2 20:28

Powered by CcTry.CoM

© 2009-2021 cctry.com

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