day05
1.空指针和野指针
1.1空指针
空指针: 空指针是一个已初始化的指针变量,它被显式地赋值为一个特殊的值,表示它不指向任何有效的内存地址。但是注意空指针是无法解引用的,无法进行访问。
1 | int main() |
1.2野指针
野指针: 野指针是指一个指针变量,其值不是空指针,但所指向的内存区域是非法的或已经被释放。野指针可能由于以下原因产生:
1.指针变量声明后并没有初始化,它的初始值是随机的,可能指向任意一个内存地址
2.指针变量指向的区域可能通过某种方式释放了,但是p的指向并没有发生改变,因此指向了一个无效区域,因此应该及时的在释放内存后将指针指向NULL(nullptr)
2.const修饰指针
const指针修饰有三种情况:
1.const修饰常量–指针常量
2.const修饰指针–常量指针
3.const既修饰常量又修饰指针
首先注意 *p=10是修改指针指向区域的值,p=&b是修改指针的指向
1 | int main() |
小技巧:const 后面跟什么,如果紧跟着 *,即const修饰指针,那么就是 常量指针,不可以修改/ * p(指针指向位置的值);如果紧跟着 p,即const修饰常量,就是指针常量,不可以修改 p(指针的指向)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 M-blog!