#include <stdio.h>
#include<string.h>
int main()
{
int a = 0;
int b = ~a;
printf("%d\n", b);
//按位取反
//0000000000000
//1111111111111
//1111111111110
//1000000000001----打印为为-1
//源码、反码、补码
//负数在内存中存储时,是二进制的补码
//使用的,打印的是源码
//源码符号位不变,其余取反,得到反码,反码加一得到补码。
//补码减一得到反码,反码符号位不变,其余取反得到源码
//第一位是符号位,0为正,1为负。
return 0;
}
#include <stdio.h>
#include<string.h>
int main()
{
int a = 10;
//int b = a++;//后置++,先使用,再++
int c = ++a;//前置++,先++,后使用
printf("a = %d\nc = %d\n", a, c);
return 0;
}
#include <stdio.h>
#include<string.h>
int main()
{
int a = 10;
//int b = a++;//后置++,先使用,再++
int c = a++;//
printf("a = %d\nc = %d\n", a, c);
return 0;
}
前后置减减一样。
#include <stdio.h>
#include<string.h>
int main()
{
int a = (int)3.14;//(类型)强制类型转换3.14是双浮点型double
return 0;
}
关系操作符
逻辑操作符
&&
||
条件操作符
exp1 ? exp2?.......
auto自动,在int前省略了
break停顿 register寄存器
。。。
static 修饰全局变量(自己内部代码中使用,无法调用)、局部变量(延长生命周期)、函数(也是无法调用)
extern//声明外部函数
define定义常量与宏
//#define MAX 100 //#define定义标识符常量
指针
内存是电脑上特别重要的存储器,
生活中地址---->空间(房间)
内存----->划分一个一个房zhen
如何产生地址
32位:32位地址线或数据线,正电和负电1和0
32位的1、0的可能性2的32次方个可能性也就是地址-一共05个gb
bit、byte、kb、mb
1 8 1024 1024
一个空间一个字节(byte)一共四个gb
指针是一个变量用来存放地址的
#include <stdio.h>
int main()
{
int a = 10;//4个字节
int* p = &a;
//有一种变量是用来存放地址的-----指针变量
//&a取地址
printf("%p\n", &a);
printf("%p\n", p);
*p = 20;//*-解引用操作符-找到对应的数变成20
printf("a = %d\n", a);
return 0;
}
int a = 10; a 取某个地址&1存放a
int* p = &a; 取地址&2存放地址&1
*p = 20; *p就是按照p存放的&1找到a,令a变为20
32位一个指针的大小4个字节
64位一个指针的大小8个字节