字节(Byte)、位(bit)
1、位:
数据存储的最小单位。每个二进制数字0或者1就是1个位;
2、字节:
8个位构成一个字节;即:1 byte (字节)= 8 bit(位);
1 KB = 1024 B(字节);
1 MB = 1024 KB; (2^10 B)
1 GB = 1024 MB; (2^20 B)
1 TB = 1024 GB; (2^30 B)
2个十六进制位占用一个字节(8个二进制)
1个十六进制=4个二进制
16=2^4
指针类型决定了:指针进行解引用操作的时候
能够访问空间的大小
int*p 能够访问4个字节
char*p 能够访问1个字节
double*p 能够访问8个字节
指针类型决定了:指针走一步能走多远(指针的步长)
int*p: p+1-->4
char*p:p+1-->1
double*p:p+1-->8
接下来我们来看看这个题目
int* test()
{
int a = 10;
return& a;
}
int main()
{
test();
return 0;
}
这行代码虽然并不会报错,但是存在逻辑错误
首先在int main()进入主函数
test()进入第二个函数
a为局部变量
只在test函数中存在,出了test函数便销毁了
这里也存在同样的问题,当出了test函数
这个指针变量便放回了电脑里面
其实道理很简单
就像你去酒店开房,当你退房之后,你还想住进去,这便不可能了
*p = i;
p++;
可以缩写成这样 *p++ = i;