C语言学习,从入门到进阶系列(三)
话接上文,我们聊到了操作符的地方。就是那些‘+’ , ‘-’ , ‘*’ ,‘/’。这些学过小学数学的应该都知道,只不过 “ * ”这个东西会比较陌生,这个其实是乘号。
当然操作符当然不止这些啦。还有移位操作符,位操作符,赋值操作符,复合赋值符,单目操作符,关系操作符,逻辑操作符,逗号操作符。
因为我们这个系列先大家了解大致的C语言,之后会进行进阶。希望大家多多支持,同时,给出有意义的建议。在这里谢谢大家!
位操作符号
#include<stdio.h>
//位操作符
// & - 按二进制位与 两个数字相与,有0则0;全1为1;
// | - 按二进制位或 两个数字相或,有1则1;全0为0;
// ^ - 按二进制位异或 两个数字相异或,相同为0;不同为1
int main()
{
int a = 3; //二进制: 0011
int b = 5; //二进制:0101
int c = 3 & 5;
int d = 3 | 5;
int e = 3 ^ 5;
printf("%d %d %d", c, d, e); //输出是:1 7 6 为什么会这样呢?我们看看结果的二进制就知道了;
//6 二进制:0110;7 二进制:0111; 1 二进制:0001;
return 0;
}
赋值操作符
#include<stdio.h>
int main()
{
int a = 10; //创建变量这边的等号不是赋值
a = 20; //这边的等号是赋值
return 0;
}
单目操作符
#include<stdio.h>
int main()
{
// ! 是单目操作符,可以将真变成假,假变成真。(真是非0数字,假是0)
int a = 10;
printf("%d\n", !a); //输出为0;将真变为假。当a = 0那么输出的是1;
//- + 是单目操作符,就是负数与正数的改变。
int b = -a;
printf("%d\n", b); //输出是-10;
//sizeof()是单目操作符。计算字节数。
int c = sizeof(a);
printf("%d\n", c); //输出的是4;计算的是所占 字节数。
// ~ 是单目操作符,是对一个数字的二进制,按位取反。
int d = 0;
printf("%d\n", ~d); //输出的是-1;
// -- ++ 是单目操作符,使得一个数字减一 加一。
int e = a++;
int f = ++a;
printf("%d %d\n", e,f);//输出是10 11;当然这个还有前置与后置的区别。前置是先加后用,后置加加是先用后加。减减类似。
// *是单目操作符,是用于指针;
// () 是单目操作符,用于类型的强制转换。
return 0;
}
条件运算符号
#include<stdio.h>
int main()
{
int a = 10;
int b = 9;
int c = a > b ? a : b;
printf("%d", c); //输出是 10;这个语句类似与if语句。
return 0;
}
逗号表达式
#include<stdio.h>
int main()
{
int a = 10;
int b = 5;
int c = (a++, b++, a + b);//输出结果是17;返回的值是前面处理之后的a+b;
printf("%d", c);
//逗号表达式是从左往右计算,逗号表达式的最后返回值是最后一个计算结果。
return 0;
}
逻辑操作符
#include<stdio.h>
int main()
{
int m = 0;
int n = 1;
printf("%d %d", m && n, m || n); //输出是0 1;&& 和||是逻辑操作符号。分别是逻辑与和逻辑或。
return 0;
}
还有很多的操作符号还没有写上去,但我之后会有文章,对于这部分知识进阶。希望大家多多支持,同时感谢大家的支持。
static的作用
#include<stdio.h>
void print()
{
int a = 2;
printf("%d ", a);
a++;
}
void print_2()
{
static int a = 2; //static 是静态修饰,当我们的代码从函数出去之后,变量a不会被销毁。
printf("%d ", a);
a++;
}
int main()
{
int i = 0;
while (i < 5)
{
print_2(); //输出是 2 3 4 5 6;
//print(); //输出是 2 2 2 2 2
i++;
}
return 0;
}
extern
#include<stdio.h>
//extern 是用于申请外部文件的。可以将外面的变量链接过来,在这边用
int main()
{
return 0;
}
define
//define定义标识符常量
#define MAX 1000
//define定义宏
#define ADD(x, y) ((x)+(y))
#include <stdio.h>
int main()
{
int sum = ADD(2, 3);
printf("sum = %d\n", sum);
sum = 10 * ADD(2, 3);
printf("sum = %d\n", sum);
return 0;
}
文章的最后,是我最后的感谢。最近周围发生了好多事情,有点忙,博客的水平不高,但还是感谢,读到这边的你们,谢谢!