【C语言提高07】【指针铁律】铁律1:指针是一种数据类型
2015-11-30 15:18
316 查看
指针也是一种变量,占有内存空间,用来保存内存地址
测试指针变量占有内存空间大小
*p操作内存
在指针声明时,*号表示所声明的变量为指针
在指针使用时,*号表示操作指针所指向的内存空间中的值
*p相当于通过地址(p变量的值)找到一块内存;然后操作内存
*p放在等号的左边赋值(给内存赋值)
*p放在等号的右边取值(从内存获取值)
指针变量和它指向的内存块是两个不同的概念
//含义1给p赋值p=0x1111;只会改变指针变量值,不会改变所指的内容;p
= p +1; //p++
//含义2给*p赋值*p='a';不会改变指针变量的值,只会改变所指的内存块的值
//含义3 =左边*p表示给内存赋值,
=右边*p表示取值含义不同切结!
//含义4 =左边char
*p
//含义5保证所指的内存块能修改
指针是一种数据类型,是指它指向的内存空间的数据类型
含义1:指针步长(p++),根据所致内存空间的数据类型来确定
p++=è(unsigned char )p+sizeof(a);
结论:指针的步长,根据所指内存空间类型来定。
注意: 建立指针指向谁,就把把谁的地址赋值给指针。图和代码和二为一。
不断的给指针变量赋值,就是不断的改变指针变量(和所指向内存空间没有任何关系)。
测试指针变量占有内存空间大小
*p操作内存
在指针声明时,*号表示所声明的变量为指针
在指针使用时,*号表示操作指针所指向的内存空间中的值
*p相当于通过地址(p变量的值)找到一块内存;然后操作内存
*p放在等号的左边赋值(给内存赋值)
*p放在等号的右边取值(从内存获取值)
指针变量和它指向的内存块是两个不同的概念
//含义1给p赋值p=0x1111;只会改变指针变量值,不会改变所指的内容;p
= p +1; //p++
//含义2给*p赋值*p='a';不会改变指针变量的值,只会改变所指的内存块的值
//含义3 =左边*p表示给内存赋值,
=右边*p表示取值含义不同切结!
//含义4 =左边char
*p
//含义5保证所指的内存块能修改
指针是一种数据类型,是指它指向的内存空间的数据类型
含义1:指针步长(p++),根据所致内存空间的数据类型来确定
p++=è(unsigned char )p+sizeof(a);
结论:指针的步长,根据所指内存空间类型来定。
注意: 建立指针指向谁,就把把谁的地址赋值给指针。图和代码和二为一。
不断的给指针变量赋值,就是不断的改变指针变量(和所指向内存空间没有任何关系)。
#include<stdio.h> #include<string.h> #include<stdlib.h> //指针做函数参数 形参有多级指针的时候 //站在编译器的角度:只需要分配4字节的内存(32bit平台上) //只有当我们使用内存的时候 我们才关心指针指向的内存 是一维的还是二维的 void main() { //1.指针是一种数据类型 // 指针也是一个变量 占有内存空间,用来保存内存地址 //在指针声明时,*号表示所声明的变量为指针 //在指针使用时,*号表示 操作 指针所指向的内存空间中的值 //*p相当于通过地址(p变量的值)找到一块内存;然后操作内存 //*p放在等号的左边赋值(给内存赋值) //*p放在等号的右边取值(从内存获取值) //*相当一把钥匙 通过一个地址(&a) 去修改a变量标示的内存空间 int a = 10; //不断的给指针赋值 相当于不停的改变指针的指向 //指针是一种数据类型,是指 它指向的内存空间的 数据类型 //含义1:指针步长(p++),根据所致内存空间的数据类型来确定 //结论:指针的步长,根据所指内存空间类型来定 int* p3 = NULL; p3 = &a; *p3 = 20; //int* p1 = 100;//只是告诉编译器分配四个字节的内存 system("pause"); }
相关文章推荐
- VS中配置通用的VC++目录和lib目录
- C++抓包 分析IP头部数据
- c 中无符号数相减依然是无符号数
- 《c++ primer》 14.5 下标操作符
- C++多态的实现方式总结
- JAVA vs C++
- ios C语言 数组
- C语言_数组
- C++学习笔记——typedef的用法
- c语言制作一个通讯录
- c++学习笔记
- MFC VC++ 控件大小自动调整 方法
- C#、VC++与QT对比之QT的高效与跨平台
- 【C语言提高06】栈的开口问题
- 垃圾回收机制GC知识再总结兼谈如何用好GC
- C-(001-006).C语言基础总结
- 运算符优先级-C++运算符优先级
- 运算符优先级-C语言运算符优先级
- C++11 多线程 一
- simple C++ vector