#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a = 0;// 4个字节 32个bit位
int b = ~a;//b是有符号的整型
//~ 按(二进制)位取反
//原码 反码 补码
//负数在内存中存储的时候,存储的是二进制的补码
//11111111111111111111111111111111补
//11111111111111111111111111111110反
//10000000000000000000000000000001原
//第一位是符号位,1代表负号,0代表正号
//负数:原-除符号位取反→ 反-加1→补
//正数:原码=反码=补码
//原反补 详解www.cnblogs.com/wqbin/p/11142873.html
int c = (int)3.14; //(类型)强制数据转换,尽量别用
printf("%d\n",c);
//三目操作符 exp1?exp2:exp3
//若exp1为真,则执行exp2,否则执行exp3
int x = 1, y = 2, z = 0;
z = x > y ? x -1 : y - 1;
printf("%d\n", z);
//static关键字的用法https://blog.csdn.net/guotianqing/article/details/79828100
//宏与函数的区别http://c.biancheng.net/view/347.html
//栈https://baike.baidu.com/item/%E6%A0%88/12808149?fr=aladdin
printf("%p\n", &a);//取地址
//指针变量专门用于存放地址
int* p = &a;
printf("%p\n", p);
*p = 20;// * 解引用操作符,地址p存储的数据赋值为20
printf("%d\n", *p);
printf("%d\n", sizeof p);
return 0;
}