int *data = (int*)0x00000001 ;
for(int b=0 ; b < 10 ; b = b +1 )
*data++ = 10 + b ;
for(int b=0 ; b < 10 ; b++)
{
int k = 0 ;
k = *(int*)(0x00000001 + b) ;
}
关于数组你应该要知道:
1、字与字节的关系
字和字节都是计算机的存储单元。字由若干个字节组成,一个字节是8个比特bit。
字长,字的位数,即cpu一次处理二进制代码的位数。字是计算机一次处理数据的最大单位,字的长度与计算架构有关:
32位计算机:1字=32位=4字节
64位计算机:1字=64位=8字节
基本类型 | 字节数 | 位数 | 最大值 | 最小值 |
---|---|---|---|---|
byte | 1 byte | 8 bit | 127 | -128 |
short | 2 byte | 16bit | 2^15 - 1 | -2^15 |
int | 4 byte | 32bit | 2^31 - 1 | -2^31 |
long | 8 byte | 16bit | 2^15 - 1 | -2^15 |
float | 4 byte | 32bit | 2^31 - 1 | -2^31 |
double | 8 byte | 64bit | 2^63 - 1 | -2^63 |
char | 2 byte | 16bit | 2^16 - 1 | 0 |
2、数组名就是数组首元素的地址。
data = &data[0]
3、指针自加,其地址如何变化?
例
#include <stdio.h>
#define SIZE 4
int main(void)
{
short dates[SIZE];
short * pti;
short index;
double bills[SIZE];
double * ptf;
pti = dates; // 把数组地址赋给指针
ptf = bills;
for (index = 0; index < SIZE; index++)
printf("pointers + %d: %10p %10p\n", index, pti + index,
ptf + index);
return 0
}
结果:
short double
pointers + 0: 0x7fff5fbff8dc 0x7fff5fbff8a0
pointers + 1: 0x7fff5fbff8de 0x7fff5fbff8a8
pointers + 2: 0x7fff5fbff8e0 0x7fff5fbff8b0
pointers + 3: 0x7fff5fbff8e2 0x7fff5fbff8b8
4、指向指针的指针
标签:index,short,字节,读写操作,int,SRAM,地址,片内,byte From: https://www.cnblogs.com/powerforme/p/16799108.html