带参的main函数——初识

本文详细解析了C/C++中main函数的参数用法,包括argc和argv的含义及如何通过它们处理命令行输入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream.h>

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

{

       for(inti=0;i<argc;i++)

       {

              cout<<argv[i]<<'\t';            

       }

       return0;

}

 

/*

int argc, char **argv 用于运行时,把命令行参数传入主程序。

 

argc -- 命令行参数总个数,包括 可执行程序名。

argv[i] -- 第 i 个参数。

argv[0] -- 可执行程序名。

 

*/

 

 

 

 

关于带参数的main函数网络收集:
int main(int argc,char **argv) 这里面的**argv含义··

是用来传递参数的,假如你编译成的文件名是a.exe,那么在命令提示符下可以通过a.exe12 34来向程序传递参数,这时两个参数就会传递到字符串数组argv中,注意此时实际传递了三个参数,第一个参数是文件名,第二个参数是12,第三个是34,而argc就是参数个数。

 

 

int argc, char **argv 用于运行时,把命令行参数传入主程序。
 
argc -- 命令行参数 总个数,包括 可执行程序名。
argv[i] --  第 i 个参数。
argv[0] -- 可执行程序名。
 
例如运行:
abc.exe
argc 等于 1, argv[0] 是 "abc.exe"
 
例如运行:
rec.exe  4  5.2
argc 等于 3, argv[0] 是 "rec.exe", argv[1] 是 "4", argv[2] 是 "5.2".
主函数里若有:
int x;
float y;
char s[80];
strcpy(s,argv[0]);  // 程序名存入 了 s
sscanf(argv[1],"%d",&x);  // x 得到数值4
sscanf(argv[2],"%f",&y);  // y 得到数值 5.2

 

 


ANSI-C(C89/C99)的话main()函数有2种主要形式。 

(1) int main(void) 
(2) int main(int argc, char *argv[]) 

(2)也可写成int main(int argc, char **argv) 
argv[argc]放空指针(NULL指针)。 
argc和argv可以用别名。 

另外,还有一种受系统限制的形式: 
int main(int argc, char *argv[], char *envp[]) 
前两个参数同(2),第三个参数envp[]放环境变量。 
这个形式很少用。 

所以严格讲, 
ANSI-C推荐的带参数的main()函数只有上面(2)这一种。 

另外,搜集了一下C和C++中常见的几种形式: 

(1) main() 
(2) int main() 
(3) int main(void) 
(4) int main(int, char**) 
(5) int main(int, char*[]) 
(6) int main(int argc, char **argv) 
(7) int main(int argc, char *argv[]) 
(8) int main( int argc, char *argv[], char*envp[]) 
(9) void main(void) 

(1)是(3)的简写。不推荐使用。 
(2)是(3)的简写。在C++中是正确的形式。 
(3)在C和C++中都是正确的形式。推荐使用。(还有缺省int的main(void)形式)。 
(4)和(5)是不用参数时的一种写法。编译器级别高时会警告。不推荐使用。 
(6)是(7)的另外写法。两种都可以,凭个人爱好。 
(7)是带参数的正确的形式。推荐使用。 
(8)是一种很少用的写法,且受系统限制。 
(9)一般不认为是正确的写法。但是在嵌入式系统中有使用(包括void main()形式

### OpenGL基础知识与初识实验 #### 什么是OpenGL? OpenGL(Open Graphics Library)是一个跨语言、跨平台的应用程序接口(API),用于渲染2D和3D矢量图形[^1]。它提供了许多功能强大的工具,使开发者能够创建复杂的视觉效果并控制硬件加速。 #### 初识实验的目的 通过学习OpenGL的基础知识以及实践简单程序,可以达到以下几个目标: - 熟悉编程环境; - 掌握光栅图形显示器的特点及其应用; - 学习计算机绘图的核心概念; - 使用VC++结合OpenGL设计一个可以在屏幕上生成任意像素点的程序[^1]。 #### 实验所需准备 为了顺利完成这个初识实验,您需要准备好以下几项内容: - 安装Visual Studio集成开发环境(推荐版本为VS2019及以上)。注意不同版本可能会影响OpenGL库文件的位置配置[^2]。 - 配置好OpenGL支持的相关库文件,比如GLUT或者FreeGLUT等辅助工具包[^3]。 #### 编写第一个OpenGL程序 下面展示了一个非常基础的例子——如何在一个窗口中绘制单个红色像素点: ```cpp #include <GL/glut.h> void display() { glClear(GL_COLOR_BUFFER_BIT); // 清除颜色缓冲区 glColor3f(1.0, 0.0, 0.0); // 设置当前绘图颜色为红 glBegin(GL_POINTS); glVertex2i(100, 100); // 绘制位于坐标 (100, 100) 的一点 glEnd(); glFlush(); // 强制执行所有OpenGL命令 } int main(int argc, char* argv[]) { glutInit(&argc, argv); // 初始化 GLUT 库 glutCreateWindow("First Point"); // 创建名为 "First Point" 的窗口 glutDisplayFunc(display); // 注册显示回调函数 glutMainLoop(); // 进入主事件循环 } ``` 此代码片段展示了最基本的OpenGL应用程序结构,包括初始化、定义绘图逻辑以及进入消息循环等功能模块[^1]。 #### 关于状态管理 在实际操作过程中,还需要关注各种OpenGL状态参数的设定。例如开启/关闭某些特效如光照、纹理映射或是深度测试等都可以通过`glEnable()` 和 `glDisable()` 函数实现[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值