指针学习笔记2
来源:互联网 发布:linux使用ftp传输文件 编辑:程序博客网 时间:2024/05/21 08:07
- 指针常见错误
## 观察指针常见错误1 ## /**************************************************** *时间:2016.8.19 11:14 *功能:观察指针常见错误1:解引用未初始化的指针 *目的:通过程序更深入了解指针 ****************************************************/ #include <stdio.h> int main(void) { int * p; //声明一个指向int类型的指针变量p(PS:未初始化) int i = 5; *p = i; //把i的值存储在p所指向的位置 printf("%d\n",*p); return 0; } //解引用未初始化的指针p,因为p未初始化,所以其值是一个随 //机值,所以不知道i的值会存放在哪个位置,可能不会出错,也 //可能会擦除或者改写数据或代码,导致程序崩溃 ## 观察指针常见错误2 ## /**************************************************** *时间:2016.8.19 11:40 *功能:观察指针常见错误2 *目的:通过程序更深入了解指针 ****************************************************/ //指针常见错误2 #include <stdio.h> int main(void) { int i = 5; int *p; int *q; p = &i; *q = p; //error,类型不一致 *q = *p; //error,解引用未初始化的指针 p = q; //okay,q未初始化,把q的随机值赋值给q,但无意义 q = p; //okay printf("%d\n",*q); //声明时为q分配了内存,所以可以对q进行读写操作 //未分配存储数据的内存,所以不可以对*p进行读写操作 }
小结
1、指针的重要性:
1) 能够处理复杂的数据结构
2) 使函数返回一个的值
3) 能够直接访问硬件
4) 能够方便的处理数组和字符串
5) 是理解面向对象中引用的基础
总的来说:指针是C语言的灵魂
2、地址
1) 内存单元的编号
2) 从零开始的非负整数
3) 范围:4G([0-4G-1],一般是32根地址线,即2^32 = 2^30 * 2^2 =
1G * 4 = 4G)
3、指针
1) 指针就是地址,地址就是指针
2) 指针变量就是存放内存单元编号的变量,或者说是存放地址
的变量
3) 指针的本质就是一个‘操作受限’的非负整数
(只可以进行减法运算,其他可以进行,但是毫无意义)
1 0
- 指针 学习笔记2
- 指针学习笔记2
- C++学习笔记 --- 指针2
- C++学习笔记(四)--指针(2)
- Go语言学习笔记(2)-变量,指针
- 指针学习笔记
- 指针学习笔记
- 函数指针学习笔记
- 指针学习笔记
- 指针学习笔记
- 指针学习笔记
- 指针学习笔记
- 学习笔记之 指针
- 指针学习笔记
- 函数指针学习笔记
- C 指针学习笔记
- 指针 学习笔记1
- 指针学习笔记
- iOS:KVO的简单使用及其本质
- 区块链开发(二)部署和运行第一个以太坊智能合约
- Java(a)--Java基础程序设计
- Maven基础与私服搭建
- JavaScript DOM 编程艺术 第八章 例子分析
- 指针学习笔记2
- 原生JS获取内嵌,外部css样式,使用style只能直接获取内联style的属性值
- JS中call、apply、bind使用指南
- Scala进阶之App特质
- Hadoop常用命令汇总
- nginx负载均衡理解(2)
- hdu 2870 Largest Submatrix
- #394 Coins in a Line
- Android性能测试之冷启动时间