64 传值传址
传值和传址
#include<stdio.h>
#include<stdlib.h>
void f_test(int *p_v1) {
*p_v1 = 200;
//传地址 第一种是传值 //在内存里面复制拷贝了一份.
}
void main() {
int l_v1 =
100;
f_test(&l_v1);
printf("l_v1 is %d \n", l_v1);
system("pause");
}
#include<stdio.h>
#include<stdlib.h>
//在C语言中,数组就是传址.
void f_test(int p_arr[10]);
void
f_test(int *p);
void f_test(int p_arr[]);
void f_test(int *p_v1) {
p_v1[5] =
100;
}
void main() {
int l_v1[10] = {
1,2,3,4,5,6,7,8,9,10 };
f_test(l_v1);
for (size_t i = 0; i < 10; i++)
{
printf("%d=%d\n", i, l_v1[i]);
}
system("pause");
}
数组就是传址
void
f_test(const int *p_v1) {
__asm {
mov eax, 4;
imul ecx, eax,
5;
mov edx, dword ptr[ebp + 8];
mov dword ptr[edx + ecx],
100;
}
}
void f_test(const int *p_v1) {
int *l_v1 = (int *)p_v1;
l_v1 = l_v1 + 5;
*l_v1
= 100;