其实在C中的const 不同于C++ 中的 const 完全只读 C中const 修饰过对象是可以从内存修改的 说说这个 没啥大用但是得知道!
前面我们说过指针是一个指向内存的盒子,那么这种修饰意思就是 盒子指向的内存地址里面的内容是只读的 就像我们平时用的 char *p = “hello” 这个p 就是只读的 所以我们直接把他当字符串理解就行了(一般也没其他作用)
这种常用于硬件的数据的读取! 盒子不能随意指向其他内存块 但是内存块内保存的内容可以变
volatile 一般防止优化用的 我不搞嵌入式不太懂
前面我们说了 指针应该怎么看 比如 char *p 代表的就是一个8(64位系统)字节的盒子 盒子有盒子的地址 盒子里面的盒子指向的地址 盒子的存取方式(存取大小) 由后面的类型决定 比如这个char 就是存取大小每次为1字节 那么很简单 p++ 每次也就是增加一个字节的内存访问 如果是int 那就是4个字节 就是这样简单
[] 在指针中很常见 也叫标签 使用更加方便于*p++ 直接p[1] 就可以了 C语言会默认将指针指向的位置设置成p[0]。 注意如下这点就可以了
p[n] 是直接取值 直接去对应地址里面的值 对应于 *p+n 而不是 p+n已经对指针很好的总结了 那么多维指针就是 指向盒子的盒子 盒子和前面说的一维指针没有什么区别 唯一区别就是 多维指针指向的是一个内存中一个指针盒子 而一维指针指向的是内存中对应定义的量。 不画图了 上面说的放两个函数会清楚很多