指针测试之函数中变量地址对齐情况

原创 2012年03月26日 22:23:22

试代码:

#include "stdafx.h"
#include <iostream>
#include <Windows.h>


using namespace std;


static void DelaySeconds(int Time);


int _tmain(int argc, _TCHAR* argv[])
{
char       CharPointer[13]     = {NULL};
char       CharPointer1[13]    = {NULL};
char       CharPointer2[13]    = {NULL};
short int  ShortIntPointer[13] = {NULL};
int        IntPointer[13]      = {NULL};
long  int  LongIntPointer[13]  = {NULL};


cout<<"CharPointer    :"<<&CharPointer<<endl;
cout<<"CharPointer + 1:"<<CharPointer+1<<endl;
cout<<"CharPointer1   :"<<&CharPointer1<<endl;
cout<<"CharPointer2   :"<<&CharPointer2<<endl;


cout<<"ShortIntPointer    :"<<&ShortIntPointer<<endl;
cout<<"ShortIntPointer + 1:"<<ShortIntPointer+1<<endl;


cout<<"IntPointer        :"<<&IntPointer<<endl;
cout<<"IntPointer + 1    :"<<IntPointer+1<<endl;


cout<<"LongIntPointer     :"<<&LongIntPointer<<endl;
cout<<"LongIntPointer + 1 :"<<LongIntPointer+1<<endl;

DelaySeconds(60);


return 0;
}


void DelaySeconds(int Time)
{
    Sleep(Time*1000);
}

打印结果:



结果分析:从打印结果分析得出所有数组的首地址都是四字节对齐

相关文章推荐

数组名,指针变量作函数参数的四种情况

函数的参数可以是变量,也可以是数组。当整个数组作为函数的参数时,实际上是数组的地址作为参数。由于实参可以是表达式,数组元素也可以是表达式的一部分,因此,数组元素可以作为函数的实参,这时对应的形参应该是...

第六周项目四 指针改正了 一个函数中的变量生命仅限于在那个函数里面,在那个函数外面不能直接取地址

#include #include using namespace std; class CPoint { private: double x; // 横坐标 doubl...

C 下标法 首地址法 指针变量法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1...

1)算术运算;2)指针地址操作;3)位运算 不使用第三方变量交换两个变量的值

不使用第三方变量交换两个变量的值(c#)2009-07-22 16:47这需要进行位操作,必较麻烦的, 在学习程序语言和进行程序设计的时候,交换两个变量的值是经常要使用的。通常我们的做法是(尤其...

c++ 取地址运算 指针变量

一、取地址运算符&(内存地址) C++编译的程序占用的内存分为以下几个部分: 1.栈区:由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。与其它分区...

C++ 虚指针、成员变量与类对象的偏移地址

本文根据对象中虚指针、成员变量、成员函数在类对象中的相对位置,分析并给出虚指针、成员变量在类对象的偏移地址分布情况及相关源码。...

又一种内存越界的情况, 野指针导致sprintf函数内存越界

最近做一个C++服务端程序,在使用多线程时,程序有时候会崩溃,从VC的错题提示看是内存访问错误导致程序崩溃,单步执行跟踪也无法定位错误所在。   根据个人的经验分析,这种错误是内存越界导致其他对...
  • baodi_z
  • baodi_z
  • 2011年10月31日 17:00
  • 3946

c++函数指针、虚继承大小、类型转换、C特殊情况记录

1. 函数和数组的修饰符的优先级通常比指针修饰符高,故一般要加(),如: int *f();//表示一个返回int *的函数声明。 int (*f) ();//函数指针,所指函数返回值为int型的...

C/C++中指令、变量等虚拟地址与物理地址情况解析

本文的重点是介绍虚拟地址和物理地址的情况,分别说明目标文件、动态库、静态库中的指令、全局变量、局部变量的地址情况。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:指针测试之函数中变量地址对齐情况
举报原因:
原因补充:

(最多只允许输入30个字)