C中的空语句是什么?

时间:2016-11-05 16:11:58

标签: c null

我想确切地知道,C编程语言中的null语句是什么?并解释它的典型用法。

我找到了以下代码段。

for (j=6; j>0; j++)
;

for (j=6; j>0; j++)

7 个答案:

答案 0 :(得分:7)

来自 msdn 页面:

  

" null语句"是表达式,缺少表达式。当语言的语法调用语句但没有表达式求值时,它很有用。它由分号组成。

     

空语句通常用作迭代语句中的占位符,或者作为在复合语句或函数末尾放置标签的语句。

了解更多:https://msdn.microsoft.com/en-us/library/1zea45ac.aspx

  

并解释它的典型用法。

如果要查找字符串中某个字符首次出现的索引

int a[50] = "lord of the rings";
int i;

for(i = 0; a[i] != 't'; i++)
    ;//null statement
//as no operation is required

答案 1 :(得分:2)

null语句是一个不做任何事情的语句,但由于语法原因而存在。

while ((*s++ = *t++))
    ; /* null statement */

在这种情况下,null语句提供while循环的主体。

或(免责声明:错误代码)

if (condition1)
    if (condition2)
        dosomething();
    else
        ; /* null statement */
else
    dosomethingelse();

在这种情况下,内部的else和null语句使外部的else不会绑定到内部的if。

答案 2 :(得分:2)

来自C11,§6.8.4.1, 6.8.3 Expression and null statements

  

null语句(仅由分号组成)执行no   操作

该标准还提供了它的几个常见用途:

  

示例2在程序片段中

      char *s;
      /* ... */
      while (*s++ != '\0')
              ;
     

null语句用于向迭代提供空循环体   言。

     

6示例3空语句也可以用于携带标签   在复合陈述的结束之前。

      while (loop1) {
            /* ... */
            while (loop2) {
                    /* ... */
                    if (want_out)
                            goto end_loop1;
                    /* ... */
            }
            /* ... */
      end_loop1: ;
      }

答案 3 :(得分:1)

空语句不会 DO 任何内容,因此独奏' ; '

所以......这个代码块在C / C ++

中什么都不做10x
for(int i = 0; i < 10; i++){//execute the following 10 times
   ;//nothing aka "null statement"
}//end for

答案 4 :(得分:1)

有时null语句起作用。在过去的旧时代&#34;当你需要时,数学硬件可能不会返回整数值,例如返回0.999 ...作为sin(pi / 2),(即sin(90度))。

int i, j, k;
i = something;
for(j = 1; (2 * j) <= i; j *= 2);

在j中计算比i小2的最大整数次幂。对于大型i来说效率不高,但如果你不相信Log函数返回一个确切的整数值,那么它很有用。

我的C ++编译器不接受null语句作为函数体,但接受&#34;空语句&#34;我认为这只是一个空的陈述块&#34; {}&#34;。

答案 5 :(得分:0)

在C \中称为空语句。在空的空间中或字符串后使用空字符时,一个地址为空

答案 6 :(得分:0)

无论是C还是java,null都有特殊的意义。 每当需要重新初始化变量的值时,null 就可以达到目的。

如果有一个字符串 i,并且我们希望它通过循环添加一个字符值,那么首先我们必须将 i 初始化为 null。