切换语句查询

时间:2017-08-13 07:07:52

标签: java switch-statement

在测验中得到了这个问题,但我不明白答案。这是在智能手机应用程序上,所以没有教练询问它。

    #include <stdio.h>
    #include <stdlib.h>
    #include <pthread.h>
    #define NTHREADS 5
    void *myFun(void *x)
     {
      int tid;
      tid = *((int *) x);
      printf("Hi from thread %d!\n", tid);
      return NULL;
     }

    int main(int argc, char *argv[])
    {
      pthread_t threads[NTHREADS];
      int thread_args[NTHREADS];
      int rc, i;
  /* spawn the threads */
      for (i=0; i<NTHREADS; ++i)
       {
        thread_args[i] = i;
        printf("spawning thread %d\n", i);
        rc = pthread_create(&threads[i], NULL, myFun, (void *) &thread_args[i]);
       }
  /* wait for threads to finish */
      for (i=0; i<NTHREADS; ++i) {
      rc = pthread_join(threads[i], NULL);
     }
     return 1;
   }

答案(根据测验)是“13”。我不明白。 X初始化为“0”。因此,当x被传递到开关时,它应该转到案例0,案例0下的指令是打印“1”。我认为这是它正在做的事情,但三者在哪里?这里有休息吗?但是,即使没有中断将流发送到交换机之外,x(零)也不应满足术语“情况2”,因此不应执行打印“3”。也没有默认值,但这比语法错误更糟糕。

任何帮助表示赞赏。所有人都提前致谢!

0 个答案:

没有答案