初始C语言:C语言操作符和关键字的简单介绍(后期会出专门的文章进行讲解关键字)

2022-08-30 11:35:32

1. 首先给大家说一下C语言中的操作符有哪些:

1.1四则运算的操作符,也就是我们所说的加减乘除;

1.2移位操作符:这个主要运用于位数的运算中的,刚开始了解的时候我们就不做过多的讲解,就是带大家了解一些有那些就OK

1.3赋值操作符:就是给我们定义的变量进行一些赋值的运算的操作符

1.4 单目操作符:这个就是操作符后面只有一个操作数

1.5关系操作符:对关系的比较的操作符:大于 小于的操作符

1.6条件操作符:当满足一定的条件的时候才会执行的操作符

1.7逗号表达式:用逗号隔开的表达式的

1.8下标引用操作符:我们在之前的数组访问中用过这类操作符,就是对数组某个元素的访问

1.9函数调用操作符:对我们所定义的函数进行调用的操作符

那么接下来我们就一一开始讲解了,小本本记好了哈

1.1四则运算的操作符

四则运算操作符主要包括加减乘除四个:+ - * / 我们直接用代码给大家操作:

加减乘除单个运算: 3+5,    7-4,   3*5,   8/4就以这四个例子讲解

int main() {
	//3+5
	int a = 3 + 5;
	printf("a= %d\n", a);
	//7 -4
	int b = 7 - 4;
	printf("b= %d\n", b);
	//3*5
	int c = 3 * 5;
	printf("c= %d\n", c);
	//8/4
	int d = 8 / 4;
	printf("d= %d\n", d);
	return 0;
}

这是他们单个运算:接下来我给大家演示一下四则运算

int main() {
	int a = 3 + 5 * 3 - 5 / 5;
	printf("a= %d", a);
	return 0;
}

1.2移位操作符:

移位操作符主要有两种:<<左移 >> 右移,这个主要是操作的二进制数,在二进制数中对二进制位进行移动;

给大家举个例子说明:-2147483647~2147483647这个是我们int型变量的取值范围,在二进制编码中

-2147483647它的源码就是(32位操作系统为例)

11111111111111111111111111111111

那么它的补码就是

10000000000000000000000000000001

当我们使用左移操作符对他进行移移位操作时<<1,此时我们的二进制编码就发生移动

00000000000000000000000000000010

此时我们发现二进制编码进行移动以后,我们的二进制编码所代表的数发生了变化,此时我们二进制编码代表的数是2;

移位运算的理解能力很难,主要是对二进制编码进行移位,在这我们就是和大家提一下,以后再给大家详细讲解

1.3赋值操作符:主要有下面几个:=  +=   -=  * =  \=  &=  ^=   |=   <<=    >>=

在这主要给大家讲解前面五个,因为我们主要是带大家先了解C语言主要学的是什么,后期给大家更加深刻的讲解

1.3.1   = 讲解

int main() {
	int a = 9;
	a = 10;
	printf("%d", a);//此时输出的a的值是9 还是 10 ;
	return 0;
}

在这我们用"="就是给我们所定义的变量重新赋值让他等于10;

1.3.2 +=  -= 讲解;

int main() {
	//int a = 9;
	//a = 10;
	//printf("%d", a);//此时输出的a的值是9 还是 10 ;
	//return 0;
	int a = 2;
	a = a + 3;
	printf("a的值为 %d\n", a);
	int b = 2;
	b += 3;
	printf("b的值是 %d\n", a);
	return 0;
}

 此时我们发现我们输出的a b的值是相等的,所以我们就可以得出:a = a + 3和 a +=3;他们的运算时一样的,那么我们可以得出-=的运算也是 a = a -3和a -=3是一致的;

int main() {
	int a = 3;
	a = a - 2;
	printf("a的值是 %d\n", a);
	int b = 3;
	b -= 2;
	printf("b的值是 %d\n", b);
	return 0;
}

1.3.3 *= 和/=之举一个例子说明问题就ok

int main() {
	int a = 8;
	a = a / 4;
	printf("a的值是 %d\n", a);
	int b = 8;
	b /= 4;
	printf("b的值是 %d\n", b);
	int c = 2;
	c = c * 4;
	printf("c的值是 %d\n", c);
	int d = 2;
	d *= 4;
	printf("d的值是 %d\n", d);
	return 0;
}

1.4 单目操作符: ! 逻辑反操作  - 负值  +正值  &取地址sizeof(操作符) 操作数的类型长度(按字节为单位)   ~ 对一个数的二进制按位取反  --前置 后置  ++前置 后置  *直接访问操作符 (类型)类型强制转换操作符后面只有一个操作数

1.4.1  !逻辑反操作  在这给大家扩展一下.在我们C语言中,0表示的假,非0表示的是真,在我我们的if条件语句中,如果if中的判断条件为真就执行if中的操作,如果if中的语句为假,就不执行if的操作

int main() {
	int flag = 1;
	if (flag) {
		printf("hehe");
	}
	return 0;
}

 在这我们看到输出了hehe说明我们if中的条件是一个真的.

int main() {
	int flag = 1;
	if (!flag) {
		printf("hehe");
	}
	return 0;
}

 当我们使用逻辑反操作的时候我们发现,没有打印任何东西,所以我们if条件判断为假.

1.4.2   - 负值  +正值

int main() {
	int a = 10;
	a = -10;
	printf("%d", a);
	return 0;
}

这也就是一个简单的赋值,我觉得没有什么可以说的,所以我也就不水啦直接跳过了

1.4.3 &取地址sizeof(操作符) 操作数的类型长度(按字节为单位)

这个我们之前讲过,我就跳过了,在我们之前的博客中,我提到过这样的例子;

1.4.4:~ 对一个数的二进制按位取反(我们后面进行讲解)

1.4.5 --前置 后置  ++前置 后置:这个主要就是一个先运算还是先使用的问题,我们在代码中给大家演示一下就很容易解释了

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

 在这我们看到:后置的时候,我们输入的a=3;让b=a++;我们发现输出的值是a=4,b=3;就说明了,我们的a在++ 以后发生了变化,而在对b取值的时候我们虽然取得值是a++;但是此时的a的值并没有发生变化,所以后置就是先输出,再加一;

在我们使用前置的时候,发现此时的d的值直接就变成了4,所以在前置的时候是先加了一再输出的.

那我们的--也是一样的道理.

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

 1.4.6 *直接访问操作符(这个我们不做讲解以后再讲)

1.4.7:(类型)类型强制转换:在我们的C语言中,如果我们定义一个小数,就会默认为double型的,

int main(){
    int a = 3.14;//在这我们的vs就是提示警告
    int a = (int) 3.14;//此时我们就将一个小数强制转换为int型的变量
    return 0;
}

这就是我们的一个强制类型的数据的一个转换.

1.5关系操作符: 主要有下面这六种 >   >=   <   <=    !=   == 接下来我给大家用代码展示一下用处:

int main() {
	int a = 10;
	if (a> 10) {
		printf("a>10");
	}
	else if (a>=10) {
		printf("a>=10");
	}
	else if (a < 10) {
		printf("a<10");
	}
	else if (a<=10) {
		printf("a<=10");
	}
	else if (a!=10) {
		printf("a!=10");
	}
	else if (a == 10) {
		printf("a==10");
	}
	return 0;
}

那么此时肯定有人有疑问,我定义的a明明是10, 在a<=10和a==10的时候明显符合条件,为啥没有输出呢?在这给小伙伴们说明一下,在我们的条件语句执行的时候,当他遇到符合条件的语句时,他就会输出并且会终止之后的条件语句的执行,也就是说在找到第一条合适的语句之后,程序就自动停止了,不会有后面的操作了.在这我给大家用三个变量来展示一下,

int main() {
	int a = 5;
	int b = 10;
	int c = 20;
	if (a> 5) {
		printf("a > 5\n");
	}
	else if (a>=5) {
		printf("a >= 5\n");
	}
	if (b < 10) {
		printf("b < 10\n");
	}
	else if (b <= 10) {
		printf("b <= 10\n");
	}
	if (c != 20) {
		printf("c != 20\n");
	}
	else if (c == 20) {
		printf("c == 20\n");
	}
	return 0;
}

 那么我们用三个变量,这样我们的关系操作符就可以很完整的使用了.满足条件就可以输出了.

1.6条件操作符:也叫做三目操作符 exp1?exp2:exp3; exp1为真就执行exp2,exp1为假就执行exp3;

int main() {
	int nowyear = 2022;
	int februarydays1 = 0;
	int februarydays2 = 0;
	if (nowyear % 4 == 0 && nowyear % 100 != 0 || nowyear % 400 == 0) {
		februarydays1 += 29;
	}
	else {
		februarydays1 += 28;
	}
	februarydays2 += nowyear % 4 == 0 && nowyear % 100 != 0 || nowyear % 400 == 0 ? 29 : 28;
	printf("februarydays1 = %d\n", februarydays1);
	printf("februarydays2 = %d\n", februarydays2);
	return 0;
}

我们这是输出二月的天数,分别使用了我们平时使用的方法,还有我们的三目运算符,我们看一下结果

我们的结果是一样的,但是我们的三目运算符明显减少了代码量.

1.7逗号表达式:用逗号隔开的一串表达式 从左向右依次计算 整个表达式的结果就是最后一一个表达式的结果.

int main() {
	int a = 10;
	int b = 20;
	int c = 30;
	int d = 40;
	int f = (a = -10, c = a + b, c + d);// 最后答案应该是50;
	printf("%d", f);
	return 0;
}

 我们最后的答案就是我们所算的50;这就是我们的逗号表达式;

1.8下标引用操作符:这个在我们的数组中经常用到,访问数组中的元素,我们经常使用数组的下标来访问

int main() {
	int arr[] = { 1,2,3,4,5,6 };
	int a = arr[5];
	printf("%d", a);
	return 0;
}

我们说数组的角标从0开始,那么我们访问数组角标为5的元素,就是访问的第六个元素.那就是6;

1.9函数调用操作符:就是我们在调用函数的时候所使用的

int add(int x,int y) {
	int z = x + y;
	return z;
}
int main() {
	int a = 5;
	int b = 5;
	int c = add(a, b);
	printf("%d", c);
	return 0;
}

在这我们定义了一个加法的函数,我们在主函数中,我们使用方法名加传入的参数,调用我们的函数,

答案是10;没有问题;

2. 主要给大家看一下我们c语言中的常见的关键字有哪些:

 一共有上面这些,有些是我们已经见识过的,有些还比较陌生,但是在以后的学习中,我们都会慢慢了解,

好的那我们本次的分享就结束了哦期待我们的下次见面

  • 作者:c语言小白~
  • 原文链接:https://blog.csdn.net/m0_62734392/article/details/124544548
    更新时间:2022-08-30 11:35:32