深入理解c/c++之从编译器角度理解变量和指针
来源:互联网 发布:proutes仿真软件接地 编辑:程序博客网 时间:2024/05/17 00:54
- 变量的定义
- 变量的访问
- 指针的定义和访问
- void 指针
- 指针的自增
变量的定义
- 说明语句: 类型 变量名
- 例如: int a;
- 作用: 编译器申请sizeof(类型)个字节的存储空间,系统返回申请的地址,编译器写入标识符表:[a,地址,int],
- 标识符表:(1)变量名,(2)变量地址,(3)类型
变量的访问
- 这样访问a的时候,通过变量名就可以找到a的地址,通过int就知道取4个字节的长度
指针的定义和访问:
- 指针是一个变量,只不过存储的内容是地址
- 说明语句: 类型 * 变量名;
- 如果一个指针变量类型为int, 则通过指针变量访问对象时,读取从指针存储的地址开始连续读取4个字节,并按整型数据解释。
- 例子:
int a = 10;int b = 9;int * p1 = &a;int * p2 = &b;cout<<*p1<<endl;//p1读取出a的地址0x00000000,从0x00000000字节开始,读出4个字节的二进制串,根据关联类型int解释数据 //变量名 地址 内容a 0x00000000 10b 0x00000004 9p1 0x00000008 0x00000000p2 0x0000000C 0x00000004
- &a = &b 是错误的,因为地址是固定的,是常量,不能改变
void 指针:
- void指针能够存储任意对象的地址,因为没有关联类型,编译器无法解释所指对象,因此,在程序中必须对其作强制类型转换
int a = 65;int * p;void * pa = &a;cout<<*(int *)pa<<endl;
指针的自增:
- 偏移量是指针的关联类型的长度
0 0
- 深入理解c/c++之从编译器角度理解变量和指针
- 深入理解C和指针
- 深入理解C指针
- 《深入理解C指针》
- 深入理解C指针
- 深入理解c指针之概述
- 深入理解C/C++数组和指针
- 深入理解C/C++数组和指针
- 深入理解C/C++数组和指针
- 深入理解C/C++数组和指针
- 深入理解C/C++数组和指针
- 深入理解C/C++数组和指针
- 深入理解C/C++数组和指针
- 深入理解c指针和数组
- 深入理解C/C++数组和指针
- 深入理解C语言指针
- 深入理解C/C++指针
- 深入理解C/C++指针
- 给自己写个技能树
- 755UVA TLE
- Linux(ElementaryOS) 实用命令
- hdu 2034 无聊水一把map
- python的list求和与求积
- 深入理解c/c++之从编译器角度理解变量和指针
- 215. Kth Largest Element in an Array**
- JavaScript 字符雨
- Ubuntu install MySQL-python
- 使用Orcad TCL脚本放置阵列元件
- JavaWeb(4)——SVN服务器配置
- solrJ客户端的使用
- ssh连接时去掉“The authenticity of host xx can’t be established”解决方法
- 自定义View(一)---View的基础概念、工作流程以及生命周期的理解