解释奇怪的指针转换问题
来源:互联网 发布:c语言复合语句格式 编辑:程序博客网 时间:2024/06/05 03:42
#include <stdio.h>int main(){ int ucData[100]; int i = 0; for(i=0; i<100; ++i) { ucData[i] = i; } char cOut = *(char*)( (int)ucData + 1 ); int p = (int)ucData; printf("p:%x\n",p); printf("ucData:%x\n",ucData); printf("(int)ucData:%x\n",(int)ucData); printf("(int)ucData+1:%x\n",(int)ucData+1); printf("cOut:%d\n",cOut); return 0;}
需要注意的是(int)ucData,虽然ucData是一个int*型的指针,但是这里是将指针所指向的地址,也就是ucData的地址转化为int型。
再在这之上+1,那么就是地址+1,因此cOut其实是指向了ucData的第二个字节,取值就是0.
char cOut = *(char*)( (int)ucData + 1 );
PS:有碰到这个问题,特别拿出来做个备注,也为了大家碰到这种问题时困惑不已。
- 解释奇怪的指针转换问题
- ads中关于函数指针转换的很奇怪的问题
- 一道“奇怪”的c指针问题
- 变量定义一个奇怪的问题,求解释
- 奇怪的 this 指针
- 奇怪的 this 指针 (续)
- 函数指针奇怪的地方
- 奇怪的malloc问题!
- 奇怪的编译问题
- 奇怪的问题。
- 又一奇怪的问题?
- 一个奇怪的问题
- 奇怪的JNI问题
- 奇怪的问题
- 奇怪的问题
- IMPLEMENT_DYNCREATE的奇怪问题
- DotMSN的奇怪问题
- 一些奇怪的问题
- 设计input搜索框提示文字点击消失的效果,提示文字与输入显示不同----->特别推荐
- poj 3468 A Simple Problem with Integers 基础线段树
- 系统表sysobjects、sysindexes、syscolumns损坏修复方法
- 无线照明系统开发过程说明(六)
- 几款web调试工具
- 解释奇怪的指针转换问题
- JSF教程三 数据转换与验证 提示错误设置为中文
- 将Python脚本文件转化成Windows可执行exe文件
- BEA WebLogic JRockit的使用和性能调优
- android mediaplayer prepare
- vmware中的linux虚拟机如何增加磁盘容量
- STRUTS2--JSP页面向Action中Set类型成员中传值
- 第三章:Creating Applications and activities-(七)介绍Android应用的class
- 把身上的名牌的衣服脱掉,换件廉价的去地铁口站着,你什么都不是!