在C++中数组在内存里是怎么排列的

看这篇文档需要的前需知识有:16进制,c++数组,小端法和大端法排列
废话不多说,直接上源码

# include<stdio.h>
typedef unsigned char* bp;// byte_pointer

/* 我想看看数组在内存里是怎么排列的 
 */ 

/* 定义数组nums = [1,2]
 * 已知1的16进制是0x00 00 00 01 
 * 已知2的16进制是0x00 00 00 02
 * 小端法显示应该是01 00 00 00和02 00 00 00
 * 那么在内存里是先显示1的16进制还是2的16进制 
 */ 
 
/* 猜想 
 * 输出为01 00 00 00 02 00 00 00
 */ 

void sb(bp add, size_t len){
    
      //sb = show_bytes 
	for(int i = 0; i < len; i++){
    
    
        printf("%.2x ",add[i]);
    }
    printf("\n");
}

int main(){
    
    
	int nums[] = {
    
    1,2};
	sb((bp) &nums[0], sizeof(nums)); //猜想正确
	return 0;
}

猜你喜欢

转载自blog.csdn.net/u013474815/article/details/107668122