C语言main函数的三种形式

在C语言中,main()函数有三种形式。

1、无参数

#include <stdio.h>

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

2、有两个参数

习惯上第一个参数是整型argc,保存了外部调用命令的参数个数,第二个参数是指针数组或二级指针argv,以字符串形式保存了与argc对应的参数,如下例子:

#include <stdio.h>

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

3、有三个参数

在argc和argv的基础上多了一个环境变量参数,环境变量的形式是“ENV=value”,参数类型是指针数组或二级指针,如下例子:

int main(int argc, char* argv[], char* envp[])
{
    int i = 0;
    for (; envp[i] != '\0'; i++) {
        printf("%s\n", envp[i]);
    }
    printf("Hello World!\n");
    return 0;
}
时间: 2024-10-11 05:33:35

C语言main函数的三种形式的相关文章

文件内光标的移动 函数基础 定义函数的三种形式

# with open(r'a.txt', 'r', encoding='utf-8')as f:# data1=f.read()# print('>1>:',data1)# print(f.tell()) # 44 只有一种情况下,光标的意思是字符# data2=f.read()# print('>2>:',data2) # 第一次有结果,第二次没有,第一次读取数据后光标已经移到了文件尾 # 只有一种情况下,光标以字符为单位:文件以rt方式打开,read()# with open

函数基础之定义,三种形式,返回值

函数基础 函数的定义 函数是一种思想. 在程序中,函数就是具备某一功能的功能,事先讲工具准备好就是函数的定义,遇到场景拿来就用就是函数的调用. 为何用函数 我们如果过不使用函数的话,写程序时将会遇到三个问题: 1.程序冗长 2.程序的扩展性差 3.程序的可读性差 如何使用函数 定义函数 先定义函数,后调用: 定义函数 def 函数名(param1,param2....): """ 函数功能的描述信息 :param1 描述 :param2 描述 :return 返回值 code

Qt学习 之 多线程程序设计(QT通过三种形式提供了对线程的支持)

QT通过三种形式提供了对线程的支持.它们分别是, 一.平台无关的线程类 二.线程安全的事件投递 三.跨线程的信号-槽连接. 这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势.多线程编程也是一个有用的模式,它用于解决执行较长时间的操作而不至于用户界面失去响应.在Qt的早期版本中,在构建库时有不选择线程支持的选项,从4.0开始,线程总是有效的. 线程类 Qt 包含下面一些线程相关的类: QThread 提供了开始一个新线程的方法 QThreadStorage 提供逐线程数据存储

a^b%c 的三种形式

求a^b%c,(1  <= a,b <= 2^62, 1 <= c <= 10^9) 最基本的快速幂 _LL mod_exp(_LL a, _LL b, int c) { _LL ans = 1; _LL t = a%c; while(b) { if(b&1) ans = ans*t%c; t = t*t%c; b >>= 1; } return ans; } 求a^b%c,(1 <= a,b,c <= 2^62) 因为c在long long范围内,

解梯度下降法的三种形式BGD、SGD以及MBGD

原帖地址:https://zhuanlan.zhihu.com/p/25765735           在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练.其实,常用的梯度下降法还具体包含有三种不同的形式,它们也各自有着不同的优缺点. 下面我们以线性回归算法来对三种梯度下降法进行比较. 一般线性回归函数的假设函数为: $$h_\theta=\sum_{j=0}^n\theta_jx_j$$   对应的损失函数为: $$J_{train}(\theta)=\frac1{2m}\s

javascript oop编程 — 实现继承的三种形式

javascript  oop编程  - 实现继承的三种形式[1] (1)模拟类的方式, 我们都知道js是原型继承机制,不存在class和instance分离的这种方式 假设,我们有两个类 function  Animal(){ this.name = "animal"; this.eat = function(){ consle.log("eating"); } } function Cat(){ this.say = function(){ console.lo

死锁的三种形式:一般死锁,嵌套管程锁死,重入锁死

死锁的总结 死锁的定义: 死锁一般是指两个(或两个以上)线程同时竞争两个(或者多个)资源,从而产生同时等待的现象,使得系统僵持不动. 顺便复习一下线程与进程的定义以及他们之间的区别. 进程:一个有独立功能的程序利用某些数据资源的一次远行过程. 线程:一个进程里面的一条执行路径(或者执行过程),同一条进程下的n多条线程之间可以互相通信(共享数据). 区别:进程是相对独立的单位,进程和线程的主要差别在于它们是不同的操作系统资源管理方式. 进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进

epoll函数及三种I/O复用函数的对比

epoll函数 #include <sys/epoll.h>int epoll_create(int size)int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)int epoll_wait(int epfd,struct epoll_event * events,int maxevents,int timeout) Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数

PHP数组输出三种形式 PHP打印数组

PHP数组输出三种形式 PHP打印数组 $bbbb=array("11"=>"aaa","22"=>"bbb");//方式一:只能输出值value不能输出keyforeach($bbbb as $color)echo $color; //方法二:value与key都可输出foreach($bbbb as $key=>$value)echo $key."=>".$value; //方法