字符串和整数在内存中的位置
2011-02-18 16:31
363 查看
#include <stdio.h> int main() { char a[]="abc"; printf("%d/n",sizeof(a)); unsigned char* ptr=(unsigned char*)a; int i; for(i=0;i<4;i++) { printf("%x:%c/n",ptr,*ptr); ptr++; } return 0; }
4
12ff7c:a
12ff7d:b
12ff7e:c
12ff7f:
void main() { __int64 a = 0x1122334455667788; __int64 *pa =&a; unsigned char *c = (unsigned char *)pa; for (int i=0; i!=sizeof(a); ++i) { printf("&a = %lX/nVa = %lX/n", c++, *c); } }
intel X86是little endian(little endian表示最没用的放在低字节,big endian表示最有用的放在低字节)
所以结果是:
&a = 12FF78
Va = 88
&a = 12FF79
Va = 77
&a = 12FF7A
Va = 66
&a = 12FF7B
Va = 55
&a = 12FF7C
Va = 44
&a = 12FF7D
Va = 33
&a = 12FF7E
Va = 23
&a = 12FF7F
Va = 12
此两者刚刚相反 :请注意
big endian 与 网络字节序一致
相关文章推荐
- 字符串的内存存储位置
- Java中字符串内存位置浅析
- C/C++——C风格的字符串的指针指向的内存位置问题(易错)
- Java中字符串内存位置浅析
- 02_对N个长度最长可达到1000的数进行排序、对给定的一个字符串,找出有重复的字符,并给出其位置、输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序
- Java中字符串内存位置浅析
- indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回 -1
- Java中字符串内存位置
- Java中字符串内存位置浅析
- indexOf()指出字符串的所处位置(整数)
- iOS 算法面试题(打印2-100之间的素数、求两个整数的最大公约数、查找字符串的位置)~demo
- 字符串内存中存储位置
- 基于Java中字符串内存位置详解
- Java 判断是否为汉字 判断是否为乱码 判断字符串是否为双整型数字 整数 数字
- 将字符串的前八个字节转换为__int64位整数
- [原]Java字符串的内存分配--从C语言字符串操作说起
- 华为机试题一 字母与字符串位置
- 剑指offer 把字符串转换成整数 扑克牌顺子
- 16进制字符串转换为10进制整数值
- C语言 数组、字符串长度及所占内存