C++栈地址增长问题
来源:互联网 发布:单片机电子钟课程设计 编辑:程序博客网 时间:2024/06/01 08:00
#include<stdio.h>#include"stdlib.h"#include<iostream>using namespace std;void func1(int i, char *szTest){cout << "szTest的地址:" << &szTest << endl;cout << "sz本身的值:" << (void*)szTest << endl;cout << "i的地址:" << &i << endl;int k,k2;cout << "k的地址:" << &k << endl;cout << "k2的地址:" << &k2 << endl;cout << "-------------------------------------------------------" << endl;}void func2(int i, char *szTest){cout << "szTest的地址: " << &szTest << endl;cout << "sz本身的值: " << (void*)szTest << endl;cout << "i的地址: " << &i << endl;int k1,k3;cout << "k的地址: " << &k1 << endl;cout << "k2的地址: " << &k3 << endl;}int main(){int a[2];cout <<"&a[0]: "<< &a[0] << endl;cout <<"&a[1]: "<< &a[1] << endl;int i = 0x22;char szTest[4] = {'a','b', 'c', 'd'};cout <<"&i: "<< &i << endl;cout <<"sz本身的值: " << (void*)szTest << endl;cout << *szTest << endl;func1(i, szTest);func2(i, szTest);}
上面例子的输出是:
&a[0]: 00D5FDE0&a[1]: 00D5FDE4&i: 00D5FDD4sz本身的值: 00D5FDC8aszTest的地址:00D5FCF4sz本身的值:00D5FDC8i的地址:00D5FCF0k的地址:00D5FCE0k2的地址:00D5FCD4-------------------------------------------------------szTest的地址: 00D5FCF4sz本身的值: 00D5FDC8i的地址: 00D5FCF0k的地址: 00D5FCE0k2的地址: 00D5FCD4所以说,栈地址是向下增长的,但是一个数组内的地址是向上增长的。
上面的例子如果改成 char a[2];
取地址要写成(void*) & a[0] 或 (int*) & a[0]
下面的程序:
char* s = "123456";cout<<"s地址: "<<(void*)s<<endl;cout<<(void*)&s[0]<<endl;cout<<(void*)&s[1]<<endl;cout<<(void*)&s[2]<<endl;cout<<(void*)&s[3]<<endl;cout<<(void*)&s[4]<<endl;cout<<(void*)&s[5]<<endl;int* p = (int*)s;cout<<"p地址: "<<(void*)p<<endl;cout<<p+1<<endl;char* b = (char*)(p+1);cout<<"b地址: "<<(void*)b<<endl;cout<<b<<endl;输出为:
s地址: 00A6DD4400A6DD4400A6DD4500A6DD4600A6DD4700A6DD4800A6DD49p地址: 00A6DD4400A6DD48b地址: 00A6DD4856请按任意键继续. . .
- C++栈地址增长问题
- IP地址自动增长。
- 【原创】栈向低地址增长以及小端模…
- 栈的属性和buf的地址增长方向
- 栈区的地址增长方向与buf地址的增长方向是两个完全不同的概念
- [C++]vector的存储方式和自增长问题
- 栈增长和大端/小端问题
- 栈增长和大端/小端问题
- 堆栈地址空间增长方式
- 如何理解栈的地址是由高端地址向低端增长?
- C计算复利增长
- 内存增长问题。
- 【每日一C之二十一】判断栈增长方向
- C学习之判断栈的增长方向
- C语言验证栈(Stack)的增长方向
- c语言中堆,栈,数组的增长方向
- 栈增长方向与大端/小端问题
- 栈增长方向与大端/小端问题
- 我的第一篇博客
- Spring Scope
- 淘宝U站问题整理
- CUDA TEXTURE MEMORY
- JS中cookie的基本使用
- C++栈地址增长问题
- J2EE 全面简介
- 趋势笔试
- 一个电脑tomcat是可以同时跑 cas,imatrix项目的
- mapreduce实现"浏览该商品的人大多数还浏览了"经典应用
- 通过Spring Mail Api发送邮件
- xp引导linux
- 带权并查集(hdu 3635,hdu 2818)
- Unity3d开发android项目时引入jar包读取图片资源的问题