char arr[10];
char* p = &arr[0];//取数组第一个元素的地址
char* p2 = arr;
为什么可以这样写
for(int k = 0 ;k<10;k++){
printf("%d\n",*(p+k));
}
char* 做操作的时候只用一个字节,因为数组连续,char数组第一个地址固定,则接下来地址为p+1,p+2...
取一个数地址和转值
int x = 10; //c语言
mov dword ptr [ebp -4],0Ah //对应汇编
int * px=&x; //c语言
lea eax,[ebp-4] //对应汇编
mov dword ptr[ebp-8],eax
int x = *px; //c语言
mov ecx,dword ptr [ebp-8] //对应汇编
mov edx,dword ptr [ecx]
mov dword ptr [ebp-0ch],edx