1.3 指针铁律
来源:互联网 发布:淘宝ipad版清除缓存 编辑:程序博客网 时间:2024/06/09 23:36
铁律1:指针是一种数据类型
指针也是一种变量,占有内存空间,用来保存内存地址
测试指针变量占有内存空间大小
2)*p操作内存
在指针声明时,*号表示所声明的变量为指针
在指针使用时,*号表示 操作 指针所指向的内存空间中的值
*p相当于通过地址(p变量的值)找到一块内存;然后操作内存
*p放在等号的左边赋值(给内存赋值)
*p放在等号的右边取值(从内存获取值)
3)指针变量和它指向的内存块是两个不同的概念
//含义1 给p赋值p=0x1111; 只会改变指针变量值,不会改变所指的内容;p = p +1; //p++
//含义2 给*p赋值*p=’a’; 不会改变指针变量的值,只会改变所指的内存块的值
//含义3 =左边*p 表示 给内存赋值, =右边*p 表示取值 含义不同切结!
//含义4 =左边char *p
//含义5 保证所指的内存块能修改
4)指针是一种数据类型,是指它指向的内存空间的数据类型
含义1:指针步长(p++),根据所致内存空间的数据类型来确定
p++=è(unsigned char )p+sizeof(a);
结论:指针的步长,根据所指内存空间类型来定。
以下都是错误的:char *p = NULL;*P =100; //p指向非法地址char *p = 0X777;*p = 200; //你不能确定内存上0X777这个位置是否能用char *p = "abcde";*p = 'z';
为啥?
因为这些地址都是无法访问的,无法读写;
字符串常量是常量,无法改动。。。。
铁律2:
(1)主调函数,被调函数
a:主调函数可把堆区,栈区,全局区数据的内存地址传给被调函数
b : 被调用函数只能返回堆区,全局区数据
(2)内存分配方式
a :指针作函数参数,是有输入和输出特性的
铁律3:应用指针必须和函数调用相结合(指针作函数参数)
铁律4:应用指针必须和函数调用相结合(指针做函数参数)
- 1.3 指针铁律
- 指针铁律
- 指针铁律1:指针也是一种数据类型
- C语言--指针铁律1
- 指针铁律4/5:应用指针必须和函数调用相结合(指针做函数参数)
- 【C语言提高07】【指针铁律】铁律1:指针是一种数据类型
- 指针铁律2/3:间接赋值是指针存在的最大意义
- 【C语言提高10】【指针铁律】铁律4:应用指针必须和函数调用相结合(指针做函数参数)
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- [算法作业][LeetCode] 50. Pow(x, n) -- 分治法
- Solr6.3 Getting Started Solr6.3 Add Core 添加Core
- java 笔记on4
- 2017.03.03 C/C++小知识点
- duilib基础知识
- 1.3 指针铁律
- Eclipse自动补全设置与Eclipse源代码下载(非常好的文章,推荐)
- linux u盘热拔插产生只读文件解决方法
- sudo命令详解
- USACO 2.1.5 Hamming Codes
- Vue 2.0 构建单页应用最佳实战
- java线程池的简单介绍与使用
- IL汇编语言教程
- 五新