设置一组绝对内存地址为0x40020800的位置,将该地址里的内容设置为整型值0x3456
#define ADDR (*(volatile unisign long *)0x40020800)
ADDR=0x3456
local variable
char *str={"abcd"}
char str[]={"abcd"} 字符数组 随着函数的结束而释放
有符号与无符号运算时,会把有符号转换成无符号
%d是十进制有符号进行计算的
6的原码:32位
0000 0000 0000 0000 0000 0000 0000 0110
-20
原码:1000 0000 0000 0000 0000 0001 0100
负数的符号位 不变 所以第一位是1
反码:1111 1111 1111 1111 1111 1110 1011
补码=反码+1
补码:1111 1111 1111 1111 1111 1111 1100
得到的值=正数原码+负数补码
看到无符号显示 %ud
gcc test.c
./a.out
#indefine SQUARE(x) (printf(""#x" square is:%d\n,(x)*(x))) 替代文本
## 具有粘合作用(拼接在一起)
strlen(p1):不含'\0'
strcpy(p2,p1):包含'\0'
char* p1=new char[100];
free(p1)
char* p2=(char*)malloc(100)
delete []p2;
p2=nullptr