关于main函数参数问题

c语言中main函数有一种特殊的形式即int main(int argc, char** argv),int main(int argc, char** argv)表示当执行程序时可以带上参数。

int main(int argc, char** argv)
{
    while(**argv++!='a');
    printf("%s", *argv);
    return 0;
}
  1. 假设执行时就写为test1.exe abc bcd cde aed,可理解为要执行一个名为test1.exe的程序,并需要对abc bcd cde aed这几个字符串进行处理。
  2. 这argc表示参数的个数,此处argc=5,即test1.exe abc bcd cde aed这5个。
  3. argv表示的是命令行参数,char** argv可以看成char* argv[],即一个字符串数组,每个元素对应一个字符串,值为字符串的首地址。因此**argv就是字符串的首字母。
  4. **argv++!='a’就表示当字符串的首字母不等于a时,则跳过该字符串,继续判定下个字符串。一旦发现某个字符串首字母为a,则在argv++作用下输出下一个字符串。比如检测第一个字符串abc时发现首字母为a,则跳出while循环,并在argv++作用下输出bcd。
  5. 注意C语言中一元运算符*和++具有相等的优先级,但它们在结合时是从右向左的。(这是和其它运算符不相同的)

以下是一些测试,不难看出规律。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

༄༊心灵骇客༣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值