020day(指针的基本概念和用法,意义和互相赋值)
2017-10-30 21:03
387 查看
172210704111-陈国佳总结《2017年10月30日》【连续020天】
标题:指针的基本概念和用法,意义和互相赋值;
内容:A.观看MOOC8.1,8.2;
B.(a).指针的基本概念:每个变量都被存放在从某内存地址(以字节为单位)开始的若干个字节中;“指针”,也叫“指针变量”,大小为4字节(或8字节,64位);其内容代表一个内存地址。
通过指针可对该指针指向的内存区域进行读写。
如:int *p; // p是一个指针,变量p的类型是int *
char * pc; //pc是一个指针,变量pc的类型是char *
float *pf; //pf 是一个指针,变量pf的类型是float*
int *p =(int *)40000; //强制类型转换;//p指向地址40000,地址p就是地址40000;*p就代表地址40000开始处若干个字节的内容;
*p =5000; //将地址40000处起始的若干个字节的内存空间里写入5000(在这里“若干”是sizeof(int))
int n =*p; //将地址40000处起始的若干字节的内容赋值给n;
总结: T * p; // p 的类型: T *
// *p 的类型: T
通过表达式 *p,可读写从地址p开始的sizeof(T)个字节
*p 等价于存放在地址p处的一个T类型的变量
* 间接引用运算符 ,sizeof(T*) 4字节(8(64位电脑));
指针用法: char ch1 ='A';
char * pc =&ch1; //使得pc指向变量ch1
【& :取地址运算符 &x :变量x的地址(即指向x的指针)】
* pc ='B'; //使得ch1 ='B'
char ch2 =* pc; //使得ch2 =ch1
pc =& ch2 ; //使得pc 指向变量ch2
*pc ='D';
//使得ch2 =‘D'
(b).有了指针,就有了自由访问内存空间的手段
在C++中,用指针p指向a的地址,然后对p进行加减操作,p就能指向a前或后的区域;
不同类型的指针,必须经过强制类型转换,才能直接互相赋值;
如: int *pn, char *pc ,char c =0x65;
pn =pc; //类型不匹配,编译出错
pn =& c; //同上
pn = (int * ) & c;
int n = * pn ; //n值不确定 //n得到了4个字节,但只有第一个字节(0x65)已知
*pn =0x12345678; //编译能过但运行可能出错(越界)
明日计划:指针的运算
标题:指针的基本概念和用法,意义和互相赋值;
内容:A.观看MOOC8.1,8.2;
B.(a).指针的基本概念:每个变量都被存放在从某内存地址(以字节为单位)开始的若干个字节中;“指针”,也叫“指针变量”,大小为4字节(或8字节,64位);其内容代表一个内存地址。
通过指针可对该指针指向的内存区域进行读写。
如:int *p; // p是一个指针,变量p的类型是int *
char * pc; //pc是一个指针,变量pc的类型是char *
float *pf; //pf 是一个指针,变量pf的类型是float*
int *p =(int *)40000; //强制类型转换;//p指向地址40000,地址p就是地址40000;*p就代表地址40000开始处若干个字节的内容;
*p =5000; //将地址40000处起始的若干个字节的内存空间里写入5000(在这里“若干”是sizeof(int))
int n =*p; //将地址40000处起始的若干字节的内容赋值给n;
总结: T * p; // p 的类型: T *
// *p 的类型: T
通过表达式 *p,可读写从地址p开始的sizeof(T)个字节
*p 等价于存放在地址p处的一个T类型的变量
* 间接引用运算符 ,sizeof(T*) 4字节(8(64位电脑));
指针用法: char ch1 ='A';
char * pc =&ch1; //使得pc指向变量ch1
【& :取地址运算符 &x :变量x的地址(即指向x的指针)】
* pc ='B'; //使得ch1 ='B'
char ch2 =* pc; //使得ch2 =ch1
pc =& ch2 ; //使得pc 指向变量ch2
*pc ='D';
//使得ch2 =‘D'
(b).有了指针,就有了自由访问内存空间的手段
在C++中,用指针p指向a的地址,然后对p进行加减操作,p就能指向a前或后的区域;
不同类型的指针,必须经过强制类型转换,才能直接互相赋值;
如: int *pn, char *pc ,char c =0x65;
pn =pc; //类型不匹配,编译出错
pn =& c; //同上
pn = (int * ) & c;
int n = * pn ; //n值不确定 //n得到了4个字节,但只有第一个字节(0x65)已知
*pn =0x12345678; //编译能过但运行可能出错(越界)
明日计划:指针的运算
相关文章推荐
- 读书摘要 C primer plus 指针的基本用法和一些需要清楚的概念(1)
- 深入理解指针,数组的基本概念
- 【C语言】指针的基本概念
- 01 HBase基本概念和hbase shell常用命令用法
- 【Objective-C】OC中引用计数和对象所有权的基本概念与用法
- 指针间接赋值的意义
- Elasticsearch学习总结一 基本用法及概念
- python中类的的用法(基本概念与基本用法)
- C/C++基础知识:函数指针和指针函数的基本概念
- 02 窗口与视图的基本概念和用法
- sed基本用法一:概念介绍
- UITableView之(一):基本概念和用法
- assert宏 (基本概念与用法整理)
- Docker 概念及基本用法
- 指针的基本用法
- c语言地址指针的基本概念
- C语言指针的基本概念
- 关于指针的四个方面的基本概念
- HBase基本概念和hbase shell常用命令用法
- ios--window的基本概念和用法