if(strstr(argv[2],"-"))
  {    startport=atoi(argv[2]);
    for(;*p;)/这句怎么理解
  if(*(p++)=='-')break;
  endport=atoi(p);/p等于多少呀?
  if(startport<1||endport>65535)
 {printf("error!\n");
retrun 0;
}
 

解决方案 »

  1.   

    代码不完整。通过猜测,应该是通过命令行传入其实端口和结束端口,参数用‘-’隔开,那个for循环是要把endport抽取出来。代码不完整,只能作这个猜测了
      

  2.   

    for(;*p;)/这句怎么理解 
    和下面语句一样用法for(int i=0;i<5;i++)
    只是这里循环是 *p为真就可以 endport=atoi(p);/p等于多少呀?
    你的p是指向哪里呢~~
    你的P,在这里代码不完整,没人知道他是多少
      

  3.   

    for(;*p;) 这句相当于while(*p)
      

  4.   

    for(;*p;)
    就是只要未到字符串末尾!就循环!
      

  5.   

    在这段代码前还有一句是p=argv[2];  
    当运行到endport=atoi(p)时p=argv[?]多少呀。