C++Primer 6.2.5||6.25练习

C++Primer 6.2.5||6.25练习

题目:编写一个main函数,令其接受两个实参。把实参的内容连接成一个string对象并输出出来。

解:
首先按照书上写出如下程序。

#include<iostream>
#include<string>
using std::string;
using std::cin;
using std::cout;
using std::endl;
int main(int argc,char **argv)
{
string str;     //直接默认初始化str,不能用使用0或者nullptr来初始化str,否则会出现未定i的错误。
for(auto i=1;i!=argc;++i)              //因为argv[0]是exe文件的名称,所以我们从i=1开始。
     str+=argv[i];
     cout<<str<<endl;
     return 0;
 }

写完程序后,但是我产生了一个疑问,main函数的实参从哪里来呢?程序执行是由main函数开始的,最后又由main函数结束整个程序。所以我们不能像调用其他函数一样来调用main函数,而且main函数只能由系统调用。

那么如何向main函数传递实参呢?
仔细看书,书上有一句话:(p196)有时我们确实需要给main函数传递实参,一种常见的情况是用户通过设置一组选项来确定函数所要执行的操作。

那在哪里设置选项呢,也就是在哪里输入实参呢,方法如下。
1、
在这里插入图片描述
2、右击这个有两个+号的选项,即P197_6_25,看你怎么命名。然后选择最下面的属性。
在这里插入图片描述
3、最后选调试,看到命令参数这一行了吧,一般没有设置过的,这一行是空的。这时候往命令参数这一行写你想添加的C风格字符串。如书上的pro -d -o ofile data0 都可以。
在这里插入图片描述

最后执行的结果。
加粗样式

当然,如果从i=0开始的话,会把程序名称也打印出来。如下
在这里插入图片描述

这个程序名并不是我们输入进去的,而是argv[0]自动保存的。

但是这里还有一个疑问,为什么我只是输入几个C风格字符串,而没有输入它的数组的大小,实参也能传递给函数呢?

嗯,这里并没有找到答案。可能系统会自动计算数组的大小,然后将实参传递给函数把。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值