关于c/c++struct,指针,数组,内存地址的点滴理解
来源:互联网 发布:电子地图数据下载 编辑:程序博客网 时间:2024/05/14 16:19
1:所谓变量,其实是内存地址的一个抽像名字罢了。在静态编译的程序中,所有的变量名都会在编译时被转成内存地址。机器是不知道我们取的名字的,只知道地址。
2:关于结构体:
#include <iostream>using namespace std;struct test{ int i; char* p; short a;};int main(int argc, char const *argv[]){ test t; cout<<&t<<endl; //0x22fef4 cout<<&t.i<<endl; //0x22fef4 cout<<&t.p<<endl; //0x22fef8 cout<<&t.a<<endl; //0x22fefc cout<<"-----------------"<<endl; test* pt = NULL; cout<<&pt<<endl; //0x22fef0 cout<<&pt->i<<endl; //0 cout<<&pt->p<<endl; //0x4 cout<<&pt->a<<endl; //0x8cout<<"-----------------"<<endl; test* ptr = NULL; //0x22feec cout<<&ptr<<endl; //0 cout<<&ptr->i<<endl; //0x4 cout<<&ptr->p<<endl; //0x8 cout<<&ptr->a<<endl; cout<<"-----------------"<<endl; test te; cout<<&te<<endl; //0x22fee0 cout<<&te.i<<endl; //0x22fee0 cout<<&te.p<<endl; //0x22fee4 cout<<&te.a<<endl; //0x22fee8}
注:1:不管结构体的实例是什么——访问其成员其实就是加成员的偏移量。
2:
3:关于指针:其大小与机器位数有关,32位机器下,char*, int* ,struct*的指针大小都为4个字节。
0 0
- 关于c/c++struct,指针,数组,内存地址的点滴理解
- C语言指针、数组的使用和内存地址
- 关于C语言中对数组取地址的理解
- 关于C语言动态分配内存传指针的理解
- 关于C/C++中struct中成员的内存地址对齐。
- 关于C的指针函数,函数指针,函数指针数组调用的一些理解
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- C语言深度剖析之—指针与内存地址(函数指针,普通指针,指针数组,数组的指针,指针的指针)
- 理解C指针: 一个内存地址对应着一个值
- 理解C指针: 一个内存地址对应着一个值
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 内存分配 地址 指针 数组 参数 实例解析
- 含有Button的ListView不能点击问题
- 队列的简单的操作
- Java学习笔记之一(深入理解Object类中方法)
- 关于cocopods
- HTML5简介
- 关于c/c++struct,指针,数组,内存地址的点滴理解
- 汇编注释
- 从阳灿众筹网,看国内众筹平台的推广
- linux中如何使用javah命令生成jni头文件
- django User
- 通过Unity3d创建二维码
- iOS的远程推送
- WordPress插件 Buddypress完美汉化版 社区插件
- 引用SDK时出现过的问题(遇到就补充)