C06_基本运算符

赋值运算符: =

数据对象,左值,右值和运算符

赋值表达式语句的目的是把值存储到内存位置上,用于存储值得数据存储区域被称为数据对象(data object), 使用变量名是标识对象的一种方法.左值是C语言术语,用于标识特定数据对象的名称或者表达式.因此,对象指的是实际的数据存储,而左值是用于标识或者定位存储位置的标签

右值指的是能赋值给可修改左值的量,且本身不是左值.

赋值表达式C语言支持连续赋值,比如 a = b = c = 123,赋值的顺序是123赋值给c,然后赋值给b,再赋值给a

sizeof运算符和size_t类型

sizeof 运算符的含义

sizeof运算符返回以字节为单位的运算对象的大小(在C中,1字节定义为char类型所占用的空间的大小,通常是8位)运算对象可以是具体的数据对象(如,变量名)或者类型.如果运算对象是类型(如,float),则必须使用圆括号括起来.

#include <stdio.h>
int main()
{
    int n = 0;
    char c = 'a';
    size_t intsize;
    intsize = sizeof(int);
    printf("n = %d, c has %zd bytes, n has %zd bytes; all ints have %zd bytes.\n",
    n,sizeof c, sizeof n,intsize);
    return 0;
}

结果:

C语言规定,sizeof返回size_t类型.这是一个无符号的整数类型,但是它不是新类型.前面介绍过,size_t是语言定义的标准类型.%zd用来显示printf()显示size_t类型的值.如果系统不支持%zd,可使用%u和%lu代替%zd

递增运算符: ++
1. 运算符说明
  1. 执行简单的任务,将其运算对象递增1.
  2. 两种模式,放到变量前面,前缀模式,放到变量后面,后缀模式.
  3. 前缀模式是先递增,再去参与运算,后缀模式是先去运算,然后再去做递增
#include <stdio.h>
int main()
{
    int ultra = 0,super = 0;
    while (super < 5)
    {
        super++;
        ++ultra;
        printf("super = %d,ultra = %d \n",super,ultra);
    }
    return 0;
}

结果:

这样写递增的逻辑使得C语言的程序很紧凑.

#include <stdio.h>
int main()
{
    int a = 1, b = 1;
    int aPost, preB;
    aPost = a++;
    preB = ++b;
    printf("a   aPost   b   preB\n");
    printf("%ld %5d %5d %5d\n", a, aPost, b, preB);
    return 0;
}

结果:

可以看到,++后缀如果放到表达式里面就是先做运算,然后再赋值,++前缀如果放到表达式里面就是先计算++后面的变量的值,然后再进行表达式的运算

2. 递减运算符

递减运算符的规则和递增运算符的规则是相同的,它只是给原变量减一

3. 优先级

递增运算符和递减运算符都有很高的结合优先级,只有圆括号的优先级比它们高.因此,xy++表示的是(x)(y++),而不是(xy)++. 不过(x)(y++)等于(x)*(y)而后y再自增.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值