c语言如果想接收命令行参数,则main()函数要写成如下形式:
创新互联自2013年创立以来,先为南康等服务建站,南康等地企业,进行企业商务咨询服务。为南康企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
int main( int argc, char *argv[] )
说明:
int argc 表示参数个数,包括执行程序名,如果没有参数,该值为1
char *argv[] 表示参数列表,每个参数都是一个字符串。argv[0]是执行程序名
参考代码:
#include stdio.h
int main( int argc, char *argv[] )
{
int i;
printf("执行程序名:%s\n", argv[0] );
for( i=1;iargc;i++ )
{
printf("第%d个参数为:%s\n", i , argv[i] );
}
return 0;
}
举几个例子,或许你就对这个函数理解了,由于一般都是用这两个字符控制输入的,所以只讨论空格回车的情况
1.输入数据为非char类型的情况:
int a, b;
scanf("%d%d",a,b);
此时的输入方式可以是1空格2
或者1空格空格。。2
或者1回车2
或者1回车回车。。2
此时可以得出结论,scanf接收不但忽略空格还忽略回车
int a, b;
scanf("%d,%d",a,b);
此时的输入方式可以是1,空格2
或者1,空格空格。。2
或者1,回车2
或者1,回车回车。。2 (只需要保证1紧接着逗号就行,随便奇葩的输入都正确)
此时可以得出结论,scanf接收不但忽略空格还忽略回车,但是在有逗号的情况下必须遵循一定的格式,否则出错。
2.再看输入数据为char类型的情况:
char a, b;
scanf("%c%c",a,b);// 或者scanf("%c,%c",a,b);
此时的输入只能按格式来,不会忽略任何字符。
就说这么多了,可能你考虑的比较多,我有没说到的,若有疑问可以提出来一起讨论下
#includestdio.h
void IntPoint(int * s, int * e, int i)
{
while (s != e) {
*s = i;
s++;
}
*e = i;
}
void main()
{
int a[10] = {0};
IntPoint(a, a + 9, 10); // 尾指针为 a + 9 ,不是 a + 10
for (int i=0; i10; i++) {
printf("%d ",a[i]);
}
}
gets,scanf都会在末尾加上\0的,要不然字符串就没法结束了;
他们的不同在于,scanf碰到缓冲区里面的空字符(空格,tab,回车,换行就会截断并添加\0),而gets是要等回车才截断字符串并添加\0的;
比如用输入字符串:abcdefg hijk回车;
用scanf的话,会得到abcdefg,而gets则是:abcdefg hijk。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款