c语言-mian函数的理解

main函数

一、概念

main函数,又称主函数,是程序执行的起点,也是终点。有且仅有一个。
  C语言规定main函数函数形参有两个:
    ①argc:参数计数器,整型变量 ,表示参数的个数.
    ②argv:参数数组本身,指向字符串的指针数组,表示存放参数的具体内容.【参数表】
    【注意】:argv[0]保存自身运行的目录路径和程序名,从argv[1]开始才是指向对应的参数
  故main函数一般写为:

int main (int argc,char *argv[]){}
int main (int argc,char **argv){}

二、实践

#include<stdio.h>

int main(int argc,char**argv)
{
		int i;
        printf("argc = %d\n",argc);
        for(i = 0 ; i < argc ;i++){
                printf("argv[%d]=%s\n",i,argv[i]);
        }
        return 0;
}


①编译程序:gcc main.c -o main
②运行程序:./main,可得:

argc = 1
argv[0]=./main

③运行程序并添加参数:./main para1 para2 para3

argc = 4            //表示有四个参数
argv[0]=./main
argv[1]=para1
argv[2]=para2
argv[3]=para3

三、main函数第三个参数,一般不使用

每个程序都会接收到一张环境表,也是一个字符指针数组(包含null结束)。
  这也是main函数的第三个参数:envp环境指针。(格式为:name = value)
  具体可查看以下示例及结果:

#include<stdio.h>

int main(int argc,char*argv[],char *envp[])
{
                int i;
        printf("argc = %d\n", argc);
        for(i = 0 ; i < argc ;i++)
        {
                printf("argv[%d]=%s\n",i,argv[i]);
        }

        for(i = 0 ; envp != NULL ; i++)
        {
                printf("%d %s\n",i,envp[i]);
        }
        return 0;
}

argc = 1
argv[0]=./test
0 SHELL=/bin/bash
1 SESSION_MANAGER=local/computer:@/tmp/.ICE-unix/1738,unix/computer:/tmp/.ICE-unix/1738
2 QT_ACCESSIBILITY=1
3 COLORTERM=truecolor
4 XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
5 XDG_MENU_PREFIX=gnome-
6 GNOME_DESKTOP_SESSION_ID=this-is-deprecated
7 LC_ADDRESS=zh_CN.UTF-8

四、环境变量

#include<stdio.h>

int main(int argc,char*argv[])
{
        char **ptr;
        extern char **environ;
        for(ptr = environ ; *ptr != 0 ; ptr++)
        {
                printf("%s\n",*ptr);
        }
        return 
$:  gcc test.c -o test
$:  ./test 
SHELL=/bin/bash
...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qq_33406021

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

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

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

打赏作者

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

抵扣说明:

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

余额充值