内容来源:【5分钟讲透C++数组】 https://www.bilibili.com/video/BV1Ww4m1U7NT/?share_source=copy_web&vd_source=ab5b6415050b18e1764e00311e3f690f
const不是常量,无法修改是编译器拦截的结果,在编译之后的汇编语言中是变量。可以把const理解成只读的意思,就是说用const修饰的变量是只读变量。constexpr(ession)常量表达式,期望在编译期常量处理,运行时成为常量,但只是期望,不同编译器对其编译的要求不同。
内存变量:类型+实体,实体存在内存中,这就是一般的变量。常量只有类型,没有实体。
字符串字面量也是变量。指针前的类型是指针的默认解类型,如果是常量指针,const在int前,说明指针解引用类型是一个只读变量int,所以指针指向的值是不能修改的,但指针本身的地址是可以变的;const在int后,说明这个指针的解引用类型是变量int,即指针常量,指针本身的地址不能变,指针指向的值可以改变。如果是两个都不变,就用两个const修饰。
操作内存中的变量需要知道三点,数据的位置(首地址),数据的size,数据的解析方法。小端存储:低字节表示低位,高字节表示高位,首位表示符号。用于保存变量的内存地址的类型叫指针类型,定义时就可以指定指针的解类型,在使用的时候临时指定也是可以的(即强制类型转换)。
数组是语法糖,数组的下标符号可以理解成指针偏移再解指针的操作,所以下标从零开始这种说法是合理的,因为首地址是不需要偏移的,并且数组可以隐式转换为首元素指针。当内存变量的类型为数组时,多维数组就产生了。

783

被折叠的 条评论
为什么被折叠?



