指针_基本概念
来源:互联网 发布:软件项目关键技术指标 编辑:程序博客网 时间:2024/05/18 02:50
一段源代码,要说的在注释里写了
指针变量前面 的“*”表示 该变量的类型 为指针型变量。(引自P223,谭浩强《C程序设计》第四版)这句话让我明白了指针一直混淆的两种声明方式(详见代码注释)
#include <stdio.h>void main(){int a = 100;//指针变量前面 的“*”表示 该变量的类型 为指针型变量。【所以不应是int* p】(引自P223,谭浩强《C程序设计》第四版)int *p1;//定义性声明p1 = &a;printf("a=%d \n", *p1);int *p2 = &a;//引用性声明printf("a=%d \n", *p2);//以上,有了基本类型,才能由定义开辟出相应的空间(比如int型)int *p;//*p = 100;//指针变量中只能存放地址【其实这是个野指针】(引自P224)注释掉,不然会报错p = &a;*p = 1;//将整数赋给p当前所指的变量printf("a=%d \n", *p);printf("a的地址=%o \n", p);//以八进制输出地址printf("p的地址=%o \n", &p);//取地址运算符&。访问 p指针变量的地址printf("p所存的东西=%d \n", *p);//直接访问运算符*。访问 p指针变量 所存的地址 地址里所存的东西 并以%d形输出printf("p地址&p=%o里是a的地址&a=%o(p=%o)里存着值*p=%d\n",&p,&a,p,*p);int *temp;//*temp = *p;//注释防错/*野指针 对*temp赋值是向一个未知的存储单元赋值【temp没具体位置】,而这个未知单元可能存着一个有用的数据,从而可能破坏系统正常工作状况(P227)*/}
来看看我用visio画的解释图吧~
变量有:变量名、变量地址、变量存的同变量格式一样格式的内容
指针就是地址,最坚实基础实在的玩意,用指针(也就是地址)就可以非常自由的访问数据,比如我就能用**&p访问*p(虽然平时不可能这么用)。
0 0
- 指针_基本概念
- Java_数组_基本概念
- 图像_一些基本概念
- 吉他初学_基本概念
- 指针(一)(基本概念)
- 指针的基本概念
- C指针的基本概念
- 指针的基本概念
- 指针的基本概念
- 【C++】指针(1):基本概念
- 数组指针基本概念
- 蓝牙协议分析_基本概念
- 蓝牙协议分析_基本概念
- 蓝牙协议分析_基本概念
- 【随笔】C语言_基本概念
- 排序算法(1)_基本概念
- 统计简单学_基本概念
- 蓝牙协议分析_基本概念
- Android MVP模式实战
- meta http-equiv属性
- Xsehll 无法远程登录阿里云Ubuntu服务器——ssh拒绝登陆
- js的双等号隐式转换规则
- 排序2:选择排序
- 指针_基本概念
- 文件存储空间的管理:成组链接法
- 求最大公约数
- MAVEN项目中JSP页面使用JSTL标签
- 排序3:插入排序
- 文本相似度算法(一):LCS动态规划
- Java内存管理(二)
- RESTful架构
- 异常Exception 基础