昨天看的都是作业讲解和概念的细讲,导致没什么好说的
~号:按位取反。这个东西昨天烧了我一个小时终于看懂了。![](https://i-blog.csdnimg.cn/direct/e1da8b6d90084dafa31c771c8ff2c056.png)
具体就是这样了
++/--用法
++/--前置和后置会产生不一样的效果,具体原因是计算机读取时规则
#include <stdio.h>
int main()
{
{
int a = 1;
int b = ++a;
printf("test1:%d\n", b);//这里输出的结果是2,因为计算机读取是先++后输出
}
{
int a = 1;
int b = a++;
printf("test2:%d\n", b)//这里输出的结果就变成1了,因为计算机读取先输出后++
}
return 0;
}
逗号表达式
int main()
{
int a = 1;
int b = 2;
int c = 3;
int d = (a = b + c,b = a +1, c = b + 1);//还是计算机的读取规则:逐一读取
//无论前面规定了a的值是多少,后面的值会覆盖掉前面的值,所以计算过程是 {[(2+3)+1]+1}=7
//而这种逗号表达式呢,计算规则是从左往右,结果读取最后(最右边)计算的值
return 0;
}
下标引用操作符和函数调用操作符
[]:叫做下标引用 ():叫做函数引用
int main()
{
int test1[10] = {1,2,3,4,5,6,7};
printf("%d\n", test1[2])//[]这里就是下标引用,顾名思义就是引用第几个下标
//函数调用,一个函数执行时需要的
return 0;
}
static😋
简称阎王让我三更死,static留我到五更
#include <stdio.h>
void test1()
{
int a = 1;
printf("%d\n", a);
a++;
}
int main()
{
int b = 0;
while(b<10)
test1();
return 0;
}
//像这种void函数,执行完一遍后就会将内部的值清楚,导致输出的值一直为1
//但是如果在"int a = 1"前面加上static,就会把a的值保留不随函数结束而消失
这是单个源文件内的用法
#include <stdio.h>
extern int a//如果其它源文件中有a这个变量就可以通关extern把变量调用过来
int main()
{
printf("%d\n", a);
return 0;
}
//但是如果在其它源文件中给"int a = x"前面加一个static,就可以确保不被其它源文件用extern调用
define定义宏
宏:提前录制好的动作
#include <stdio.h>
#define A(a,b) a+b
int main()
{
int x = 4*A(2,3);
printf("%d\n", x);//这里出来的数据并不是20而是11
//如定义所讲,这是一个动作,所以被调用时只是把内容替换掉 = 4*2+3
//所以为了防止这种错误,可以把a+b换成((a)+(b))
return 0;
}
point指针
point更准确的翻译:指向
#include <stdio.h>
int main()
{
int a = 10;
int* place1 = &a;//编程语言中会有一个存储器,这里就可以理解为将a的值存储到place1的地址
//而如果需要用上这个值就可以按照地址名调用
*place1 = 1;
printf("%d\n", a);
return 0;
}
结构体
#include <stdio.h>
struct people//创建类型
{
char name[10];[]表示长度
int age;
int level;
int property;
}
int main()
{
people test1 = {"张三",18,fw,10w};//创建人物+结构体数据
printf("%s %d %d %d",test1.name,test1.age,test1.level,test1.property);
return 0;
}