C语言基础--拨开main函数的神秘面纱,深入解析main函数

写在前面:无论是C语言初学者还是已经工作了很多年的朋友,main函数天天都在用,但是我们有没有思考过main函数的各种特性呢?

从第一节C语言课,就讲到了下面的这个例子:

#include <stdio.h>

int main()
{
	printf("Hello World!\n");
	return 0}

这里用到了printf函数,这个函数式放在IO库里面的,所以要包含IO的头文件,这个我相信大家都知道。
那这里我们有没有想过,下面为什么要加个return 0 呢?
加个return 0 是用来做什么的呢?
return 0的意思就是退出函数并返回调用函数
那我么可不可以不加return 0呢?
比如下面的这段代码,如果不加return 0 又会有什么效果呢?

#include <stdio.h>

void main()
{
	printf("Hello World!\n");
}

这是时候 main函数的返回值是多少呢?是printf函数中字符串的长度
在这里插入图片描述
再来看看main函数,我们写一个传参的main函数来看看

#include <stdio.h>
int main(int argc,char*argv[])                                                  
{
    int i;

    printf("argc = %d\n",argc);             

    //输出一下argv数组
    for(i = 0;i < argc;i++)
        puts(argv[i]) ;   
    return 0;
}

上面的main函数共有两个参数,argc 和指针数组charargv[],这里的*argc表示的是从其父程序接收过来的参数的个数,argv【】中放的是从父程序接收过来的参数的具体内容,并且是以空指针NULL结束,空指针NULL在这里表示的是该数组的结束
用gcc来看下结果:
在这里插入图片描述
从上图中我们可以看到argc = 1,这是因为这里中断只传递了一个参数,这个参数也就是main
也可以给main函数传递多个函数,此处传递了 main 123 456 就可以看到
argc = 3
在这里插入图片描述
通过模糊搜索,我们知道在/etc/a
.conf 文件夹下有三个文件如下:
在这里插入图片描述
那如果再中断中,argv能不能解析这个文件目录呢?
答案是可以的,此时我们把* argv【】这个指针数组全部打印出来就会看到以下结果:
在这里插入图片描述
后面也会继续更新C语言知识,但个人水平有限,也请各位指教!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值