文章目录
一、变量
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