两个函数问题!

Iamstefanie 2008-06-05 02:43:33
问题1:
int& f(const int& a,const int& b)
{

return a;
}
这个函数执行时会出现这样一条错误信息
“cannot convert from 'const int' to 'int &' Conversion loses qualifiers”
但是
int& f(const int& a,const int& b)
{

return a>b?a:b;
}
就不会报错了,我觉得两个函数都返回了一个const int型的数怎么第一个会报错,而第二个就不会报错了呢?
我用的是VC6.0

问题2:
有关main的参数问题
#include<iostream>
using namespace std;
int main(int argc,char* argv[])
{
for(int i=0;i<argc;i++)
cout<<endl<<argv[i];
cout<<endl;
return 0;
}


执行这个程序时为什么还没等我输命令行参数就直接输出了
应该如何修改呢?
...全文
67 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
evifree 2008-06-05
  • 打赏
  • 举报
回复
main函数中的参数就是命令行参数, 如果你想自己一个字符串一个字符串的输, 那你就自己声明变量, 自己输入输出
Iamstefanie 2008-06-05
  • 打赏
  • 举报
回复
第一个问题明白了

第二个问题中我想说的是如何给* argv[]赋值,当我运行程序时,总是直接输出* argv[]中的值了.是不是要先用要用cin>>一个个的给它赋值呢
xkyx_cn 2008-06-05
  • 打赏
  • 举报
回复
标准中规定:
在发生类型转换时,左边的标识符(变量,指针等)必须含有右边标识符(变量,指针,常量等)的全部限定符

第一个函数中,左边的类型是int &,右边的是const int&,右边具有限定符const而左边没有
evifree 2008-06-05
  • 打赏
  • 举报
回复
1.第一个函数, a作为参数传进去时指定是const的引用, 但是作为返回值时丢掉了const限定符,所以报错
2.命令行参数是你执行程序时的参数, 直接在程序名后面接着输入就行了, 整个命令行输完再回车.
xkyx_cn 2008-06-05
  • 打赏
  • 举报
回复
问题1:
编译器无法确定a>b?a:b的类型

问题2:
无论你是否添加命令行参数,程序名都会作为第一个命令行参数

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧