C指针和临时变量

ans*_*tta 2 c memory pointers temp

int main()  
{  
    int i=0;  
    int* p_numbers = ((int*) malloc (5*sizeof(int)));  
    int* temp;  
    temp = p_numbers;  
    for(i=0;i<5;i++)  
    {  
        *temp=i;   
        printf("temp %d p_numbers %d",*temp,*p_numbers);  
        temp++;           
    }
}
Run Code Online (Sandbox Code Playgroud)

请告诉分配给tempie 的指针temp=p_numbers.

temp不是指向指向的相同内存位置p_numbers

小智 5

变量tempp_numbers将指向同一个内存位置上循环的第一次迭代.之后,temp以整数递增,但p_numbers不会.

由于分配,p_numbers = [0,1,2,3,4]所以你打印出来:

temp 0 p_numbers 0
temp 1 p_numbers 0
temp 2 p_numbers 0
temp 3 p_numbers 0
temp 4 p_numbers 0
Run Code Online (Sandbox Code Playgroud)

将指针视为指向内存地址,而不是像Java引用语法.