C语言——变量和操作符


一、变量

在这里插入图片描述

1.变量的创建:

一个变量的创建必须要包括类型名称
例如:

int a ;//此处我们向内存申请了一个名称为a,类型为int的空间来储存我们的数据

如果两个变量的类型相同,有时候我们也可以这样创建:

int a ,b;

但是分行创建的变量更有利于我们修改和注释:

int a ;
int b ;

2.赋值和赋值操作符

1.赋值操作符:

前面我们见过利用“=”将右侧的值传递给左侧,严格注意运算方向从右到左,此处的“=”就是赋值操作符,它与数学中的等号是有区别的,在C语言中,若要表示两个东西相等,表达符号应当是“==”。

2.变量的初始化

我们在创建变量的时候,变量的值是不确定的,为了准确地使用该变量,会对其进行赋值,就是变量的初始化。

int a = 0;
int b = 0;
int c = 1;//分别对a,b.c初始化
a = c;//此处的“=”表示将c的值1赋予给a,此时a变量为1,是对变量进行赋值
c = 10//此处对c进行赋值
a == b;//此处要表达的应当是a与b的值相等

二、算术操作符

算数操作符有:

  •      +
    
  •      -
    
  •      *
    
  •       /
    
  • %
    其分别对应了数学中的加减乘除以及取余数。
    算数操作符的涉及对象是两个,所以也叫“双目操作符”。
    在这里插入图片描述

1.+ - *

我们通过代码直观地认识:

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

输出结果如下:

c=6
b=6
a=36

2. /

对于除法运算符号来说,如果运算符的两端是整数,那么得到的值是整数部分。

#include <stdio.h>
int main()
{
    int a = 2/4;
    int b = 6/5;
    float c = 3/2;
     
    printf("a=%d\n", a);//保留整数部分
    printf("b=%d\n", b);//保留整数部分
    printf("c=%f\n", c);//即使c是浮点类型,也保留整数部分
    return 0;
}

输出结果如下:

a=0
b=1
c=1.000000

若要是想得到带有浮点数的结果,除号的两端必须有一个带有浮点数

#include <stdio.h>
int main()
{
    float c = 3.0/2;
    printf("b=%d\n", b);
    return 0;
}

输出结果如下:

c=1.500000

*强制类型转换

上面提及到了,想得到带有浮点数的结果,除号的两端必须有一个带有浮点数。
其实还可以对数据类型进行转换。
强制类型转换使用的一般形式是:

(数据类型)表达式;

我们来看一个例子:

#include <stdio.h>
int main()
{
    int a = 1;
    float b = (float)a;  // 将整数 a 转换为浮点数并赋给变量 b


    float c = 3.14;
    int d = (int)c;  // 将浮点数 c 转换为整数并赋给变量 d(注意:小数部分将被截断)


    int x = 10;
    int y = 3;
    float z = (float)x / y;  // 将 x 转换为浮点数后进行除法运算,并将结果赋给 z
    float i = (float)(x / y);//注意此处与上面的不同的是,此处是先对整数类型的x、y相除,得到的结果3,再将结果强制转换成浮点数
    printf("a=%d\n", a);
    printf("b=%f\n", b);
    printf("c=%f\n", c);
    printf("d=%d\n", d);
    printf("x=%d\n", x);
    printf("y=%d\n", y);
    printf("z=%f\n", z);
    printf("z=%f\n", i);

    return 0;
}

输出结果如下:

a=1
b=1.000000
c=3.140000
d=3
x=10
y=3
z=3.333333
i=3.000000

3. %

求模运算符号只能运用于整数,不能运用于浮点数

#include <stdio.h>
int main()
{
    int a = 5%4;
    printf("a=%d\n", a);

    return 0;
}

输出结果如下:

a=1

4.注意:

对于求商和求余操作,出现负数的操作对象时,结果取决于编译器。

三、赋值操作符

1.连续赋值

赋值操作符是可以进行连续赋值的:

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    int c = 7;
    a = b = c + 4;

    printf("a=%d\n", a);
    printf("b=%d\n", b);
    printf("c=%d\n", c);

    return 0;
}

输出结果如下:

a=11
b=11
c=7

但是这种操作不利于理解,建议分开进行表示。

2.复合赋值

在对变量a自身进行加减操作时,我们可以:

 int a = 0;
 a = a + 1;

除此之外,还可以用复合赋值的方式表示:

 int a = 0;
 a += 1;

类似的复合赋值运算符还有:

+=-=
/=%=*=^=;//以及下面特殊的五种。
|=;
&=;
>>=;
<<=;

四、单目操作符

和双目操作符相反,其涉及的对象只有一个。

1.+和-

最简单的单目操作符,和数学中的一样,就是用来区分数字的正负的。

2.++和–

++和–都是对操作对象进行加一或者减一的运算。但是有前置和后置之分。

前置++和前置–:
先加一或者减一,再将得到的值赋给左边。

#include <stdio.h>
int main()
{
    int a = 1;
    int b = 0;
    int c = 0;
    b = ++a ;//先a+1等于2,再将a=2的值赋给b
    c = --a;//此时a的值为2,先将a减1,再将a=1赋给c

    printf("a=%d\n", a);
    printf("b=%d\n", b);
    printf("c=%d\n", c);

    return 0;
}

输出结果如下:

a=1
b=2
c=1

后置++和后置–:
先将右侧的原始值赋给左边,在对右侧的表达式进行加一或者减一的运算:

#include <stdio.h>
int main()
{
    int a = 1;
    int b = 0;
    int c = 0;
    b = a++ ; //先把a=1的值赋给b,此时b=1,再对a加一,此时a=2
    c = a-- ; //先把a=2的值赋给c,此时c=2,再对a减一,此时a=1

    printf("a=%d\n", a);
    printf("b=%d\n", b);
    printf("c=%d\n", c);

    return 0;
}

输出结果如下:

a=1
b=1
c=2

  • 27
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值