亲宝软件园·资讯

展开

C语言 辅助语句

清风自在 流水潺潺 人气:0

一、程序中的辅助语句(上)

C语言中的注释

注意:单行注释不一定被编译器支持

注释的语法

单行注释

多行注释

示例

int main()
{
    /*
        多行注释
        定义一个变量,并且初始化
    */
    int i = (int) (10.3 / 3);
    printf("i = %d\n", i);
    //单行注释
    /*
        // 多行注释中嵌套单行注释,无意义
    */
    return 0;
}

赋值语句

连续赋值

复合赋值

上代码:

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 10;
    a = b = b + 1; // a=>11  b=>11
    printf("a = %d, b = %d\n", a, b);
    a += 1;
    a -= 2;
    a *= 3;
    a /= 4;
    // a => 7
    printf("a = %d\n", a);
    /*
        复合赋值与连续赋值相结合
    */
    a += b -= 1;
    printf("a = %d, b = %d\n", a, b);
    return 0;
}

下面为输出结果:

三目运算符(条件运算符)

注意事项

逗号表达式

下面代码就是采用逗号表达式将多个语句连在一起:

int main()
{
    int a = 0;
    int b = 1;
    a = 2, b = 3, printf("a + b = %d\n", a + b);
    return 0;
}

逗号表达式补充说明

下面的代码就是综合逗号表达式和三目运算符:

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 10;
    int c = 0;
    a = (b < 10) ? 1 : 2;
    printf("a = %d\n", a);
    (a < 5) ? (a = 5) : (a = 0);
    printf("a = %d\n", a);
    /*
    ((a == 5) ? a : b) = 10; // ERROR
    */
    a = b = c = 0;
    c = (a = 2, b = 3, a + b);
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    printf("c = %d\n", c);
    c -= a;  // c = c - a;
    printf("c = %d\n", c);
    return 0;
}

下面为输出结果:

小结

二、程序中的辅助语句(下)

自增 (++) 与自减 (--) 运算符

前置:先自增(自减),再取值

后置:先取值,再自增(自减)

举一个简单的例子,

v = 1, y = ++v; 执行完之后v = 2, y = 2;

v = 1, y = v++; 执行完之后v = 2, y = 1;

注意事项

上代码:

#include <stdio.h>
int main()
{
    int a = 0;
    int c = 1;
    a = -c++;  // c -> 2
    printf("a = %d\n", a);
    a = +(++c); // +(++c); c -> 3
    printf("a = %d\n", a);
    a = -c--;  // c -> 2
    printf("a = %d\n", a);
    printf("c = %d\n", c);
    return 0;
}

下面为输出结果:

goto - 程序世界中的“破坏者”

如下所示:

c = 1;
goto LABEL;
c = 2;
LABEL:
    printf("c = %d\n",c);

注意事项

上代码:

#include <stdio.h>
int main()
{
    int a = 0;
    int c = 1;
    if( a + c > 0 )
    {
        printf("a = %d, c = %d\n", a, c);
        goto ELSE;
    }
    else
    {
        ELSE: printf("%d + %d = %d\n", a, c, a + c);
        goto FOR;
    }
    for(c=10; c>0; c--)
    {
        FOR:
        printf("c = %d\n", c);
    }
    return 0;
}

下面为输出结果:

可以看到 c 输出为1,这是因为使用 goto 语句后,直接调到 FOR 标签所在的位置,导致了 for 循环没有执行。

小结

加载全部内容

相关教程
猜你喜欢
用户评论