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++;
}
}
请告知分配给 temp
的指针,即 temp=p_numbers
。
temp
是否指向 p_numbers
指向的同一内存位置?
最佳答案
变量 temp
和 p_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
将指针视为指向内存地址,而不是更像 Java 引用语法。
关于C 指针和临时变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8628574/