新手 两个问题

时间:2021-04-27 21:56:23
1. 为什么int的取值范围是-32768~32767?

2. void main(int argc,char *argv[])//这两个参数怎么理解?

8 个解决方案

#1


你搞错了吧,short应该是-32768~32767,因为short为16位,2的16次次方表示范围为0-65536,包括负数的话就是-32768~32767,int是32位的,应该是21亿多的范围
argc是参数个数,argv是参数值的数字,c表示count,表示value,arg是参数的缩写。。。。

#2


int在32位机里是32位的整型数据. 
所以unsigned int最大能表示2^32-1. 
你这里的int应该是16位的,因为为有符号数,所以是-(2^15-1)到(2^15-1),最高位作符号位 


argc  参数个数 argv  参数数组

#3


“数字”->“数组”

#4


你编译器还是16位的???

int 一般是32位 -2,147,483,648到 2,147,483,647 

2,主函数的参数嘛。 第1个参数是表示第2个参数的数组大小,第2个参数看类型就是 字符指针数组。

#5


1. 2的15次方为32768,你说的是16位机上的int.
2. 这里不多说了、
argv[1]   为在DOS   命令行中执行程序名后的第一个字符串;   
  argv[2]   为执行程序名后的第二个字符串;   
  ...   
  argv[argc]为NULL。   *env:   字符串数组。env[]   的每一个元素都包含ENVVAR=value形式的字符串。其中ENVVAR为环境变量如PATH或87。value   为ENVVAR的对应值如C:\DOS,C:\TURBOC(对于PATH)   或YES(对于87)。     

http://www.opencv.org.cn/index.php/Main%E5%87%BD%E6%95%B0%E5%8F%82%E6%95%B0argc%EF%BC%8Cargv%E8%AF%B4%E6%98%8E

http://www.cnblogs.com/strinkbug/archive/2008/01/22/1049300.html

#6


1,int的范围是不固定的,16位系统是-32768~32767,-2^15~2^15-1
2,argc是传给main函数的参数个数,argv参数列表。

#7


int的问题,2楼正解
另一个问题,引用一下别人的:
每一C   程序都必须有一main()函数,   可以根据自己的爱好把它放在程序的某    
  个地方。有些程序员把它放在最前面,   而另一些程序员把它放在最后面,   无论放    
  在哪个地方,   以下几点说明都是适合的。    
          1.   main()   参数    
          在Turbo   C2.0启动过程中,   传递main()函数三个参数:   argc,   argv和env。    
            *   argc:     整数,   为传给main()的命令行参数个数。    
            *   argv:     字符串数组。    
                              在DOS   3.X   版本中,   argv[0]   为程序运行的全路径名;   对DOS   3.0    
                              以下的版本,   argv[0]为空串("")   。    
                              argv[1]   为在DOS命令行中执行程序名后的第一个字符串;    
                              argv[2]   为执行程序名后的第二个字符串;    
                              ...    
                              argv[argc]为NULL。    
            *env:     安符串数组。env[]   的每一个元素都包含ENVVAR=value形式的字符    
  串。其中ENVVAR为环境变量如PATH或87。value   为ENVVAR的对应值如C:\DOS,   C:    
  \TURBOC(对于PATH)   或YES(对于87)。    
          Turbo   C2.0启动时总是把这三个参数传递给main()函数,   可以在用户程序中    
  说明(或不说明)它们,   如果说明了部分(或全部)参数,   它们就成为main()子程序    
  的局部变量。    
          请注意:   一旦想说明这些参数,   则必须按argc,   argv,   env   的顺序,   如以下    
  的例子:    
            main()    
            main(int   argc)    
            main(int   argc,   char   *argv[])    
            main(int   argc,   char   *argv[],   char   *env[])    
          其中第二种情况是合法的,   但不常见,   因为在程序中很少有只用argc,   而不    
  用argv[]的情况。    
          以下提供一样例程序EXAMPLE.EXE,     演示如何在main()函数中使用三个参数:    
            /*program   name   EXAMPLE.EXE*/    
            #include   <stdio.h>    
            #include   <stdlib.h>    
            main(int   argc,   char   *argv[],   char   *env[])    
            {    
                      int   i;    
                      printf("These   are   the   %d     command-   line     arguments   passed     to    
                                      main:\n\n",   argc);    
                      for(i=0;   i<=argc;   i++)    
                          printf("argv[%d]:%s\n",   i,   argv[i]);    
                      printf("\nThe   environment   string(s)on   this   system   are:\n\n");    
                      for(i=0;   env[i]!=NULL;   i++)    
                                printf("   env[%d]:%s\n",   i,   env[i]);    
            }    
          如果在DOS   提示符下,   按以下方式运行EXAMPLE.EXE:    
          C:\example   first_argument   "argument   with   blanks"     3     4     "last     but    
  one"   stop!    
          注意:   可以用双引号括起内含空格的参数,   如本例中的:       "     argument    
  with   blanks"和"Last   but   one")。    
          结果是这样的:    
            The   value   of   argc   is   7    
            These   are   the   7   command-linearguments   passed   to   main:    
            argv[0]:C:\TURBO\EXAMPLE.EXE    
            argv[1]:first_argument    
            argv[2]:argument   with   blanks    
            argv[3]:3    
            argv[4]:4    
            argv[5]:last   but   one    
            argv[6]:stop!    
            argv[7]:(NULL)    
            The   environment   string(s)   on   this   system   are:    
            env[0]:   COMSPEC=C:\COMMAND.COM    
            env[1]:   PROMPT=$P$G                         /*视具体设置而定*/    
            env[2]:   PATH=C:\DOS;C:\TC             /*视具体设置而定*/ 

#8


1.如果int是两个字节(即16位),则一个符号位,15个数值位  -2^15~2^15-1即-32768~32767
  不过好像int一般都是四个字节吧。

#1


你搞错了吧,short应该是-32768~32767,因为short为16位,2的16次次方表示范围为0-65536,包括负数的话就是-32768~32767,int是32位的,应该是21亿多的范围
argc是参数个数,argv是参数值的数字,c表示count,表示value,arg是参数的缩写。。。。

#2


int在32位机里是32位的整型数据. 
所以unsigned int最大能表示2^32-1. 
你这里的int应该是16位的,因为为有符号数,所以是-(2^15-1)到(2^15-1),最高位作符号位 


argc  参数个数 argv  参数数组

#3


“数字”->“数组”

#4


你编译器还是16位的???

int 一般是32位 -2,147,483,648到 2,147,483,647 

2,主函数的参数嘛。 第1个参数是表示第2个参数的数组大小,第2个参数看类型就是 字符指针数组。

#5


1. 2的15次方为32768,你说的是16位机上的int.
2. 这里不多说了、
argv[1]   为在DOS   命令行中执行程序名后的第一个字符串;   
  argv[2]   为执行程序名后的第二个字符串;   
  ...   
  argv[argc]为NULL。   *env:   字符串数组。env[]   的每一个元素都包含ENVVAR=value形式的字符串。其中ENVVAR为环境变量如PATH或87。value   为ENVVAR的对应值如C:\DOS,C:\TURBOC(对于PATH)   或YES(对于87)。     

http://www.opencv.org.cn/index.php/Main%E5%87%BD%E6%95%B0%E5%8F%82%E6%95%B0argc%EF%BC%8Cargv%E8%AF%B4%E6%98%8E

http://www.cnblogs.com/strinkbug/archive/2008/01/22/1049300.html

#6


1,int的范围是不固定的,16位系统是-32768~32767,-2^15~2^15-1
2,argc是传给main函数的参数个数,argv参数列表。

#7


int的问题,2楼正解
另一个问题,引用一下别人的:
每一C   程序都必须有一main()函数,   可以根据自己的爱好把它放在程序的某    
  个地方。有些程序员把它放在最前面,   而另一些程序员把它放在最后面,   无论放    
  在哪个地方,   以下几点说明都是适合的。    
          1.   main()   参数    
          在Turbo   C2.0启动过程中,   传递main()函数三个参数:   argc,   argv和env。    
            *   argc:     整数,   为传给main()的命令行参数个数。    
            *   argv:     字符串数组。    
                              在DOS   3.X   版本中,   argv[0]   为程序运行的全路径名;   对DOS   3.0    
                              以下的版本,   argv[0]为空串("")   。    
                              argv[1]   为在DOS命令行中执行程序名后的第一个字符串;    
                              argv[2]   为执行程序名后的第二个字符串;    
                              ...    
                              argv[argc]为NULL。    
            *env:     安符串数组。env[]   的每一个元素都包含ENVVAR=value形式的字符    
  串。其中ENVVAR为环境变量如PATH或87。value   为ENVVAR的对应值如C:\DOS,   C:    
  \TURBOC(对于PATH)   或YES(对于87)。    
          Turbo   C2.0启动时总是把这三个参数传递给main()函数,   可以在用户程序中    
  说明(或不说明)它们,   如果说明了部分(或全部)参数,   它们就成为main()子程序    
  的局部变量。    
          请注意:   一旦想说明这些参数,   则必须按argc,   argv,   env   的顺序,   如以下    
  的例子:    
            main()    
            main(int   argc)    
            main(int   argc,   char   *argv[])    
            main(int   argc,   char   *argv[],   char   *env[])    
          其中第二种情况是合法的,   但不常见,   因为在程序中很少有只用argc,   而不    
  用argv[]的情况。    
          以下提供一样例程序EXAMPLE.EXE,     演示如何在main()函数中使用三个参数:    
            /*program   name   EXAMPLE.EXE*/    
            #include   <stdio.h>    
            #include   <stdlib.h>    
            main(int   argc,   char   *argv[],   char   *env[])    
            {    
                      int   i;    
                      printf("These   are   the   %d     command-   line     arguments   passed     to    
                                      main:\n\n",   argc);    
                      for(i=0;   i<=argc;   i++)    
                          printf("argv[%d]:%s\n",   i,   argv[i]);    
                      printf("\nThe   environment   string(s)on   this   system   are:\n\n");    
                      for(i=0;   env[i]!=NULL;   i++)    
                                printf("   env[%d]:%s\n",   i,   env[i]);    
            }    
          如果在DOS   提示符下,   按以下方式运行EXAMPLE.EXE:    
          C:\example   first_argument   "argument   with   blanks"     3     4     "last     but    
  one"   stop!    
          注意:   可以用双引号括起内含空格的参数,   如本例中的:       "     argument    
  with   blanks"和"Last   but   one")。    
          结果是这样的:    
            The   value   of   argc   is   7    
            These   are   the   7   command-linearguments   passed   to   main:    
            argv[0]:C:\TURBO\EXAMPLE.EXE    
            argv[1]:first_argument    
            argv[2]:argument   with   blanks    
            argv[3]:3    
            argv[4]:4    
            argv[5]:last   but   one    
            argv[6]:stop!    
            argv[7]:(NULL)    
            The   environment   string(s)   on   this   system   are:    
            env[0]:   COMSPEC=C:\COMMAND.COM    
            env[1]:   PROMPT=$P$G                         /*视具体设置而定*/    
            env[2]:   PATH=C:\DOS;C:\TC             /*视具体设置而定*/ 

#8


1.如果int是两个字节(即16位),则一个符号位,15个数值位  -2^15~2^15-1即-32768~32767
  不过好像int一般都是四个字节吧。