我有一个像这样的小代码:
#include <stdio.h>
int *ptr1;
int *ptr2;
void some_function(void)
{
int B = 5;
ptr2 = &B;
}
main (){
int C, D;
int A =10;
int *ptr3;
ptr1= &A;
ptr3=ptr2;
some_function();
C = *ptr1 + *ptr2;
printf("Sum of the numbers C= %d\n",C);
some_function();
D = *ptr1 + *ptr3;
printf("Sum of the numbers D= %d\n",D);
}
为什么我没有得到 D 的结果,却得到了 C 的结果?我得到了打印语句 S 的结果,um of the numbers C=15
但没有得到 D 的最后一个打印语句。本地指针和全局指针之间有什么区别(我的意思是 ptr1 和 ptr2 都是全局定义的,而 ptr3 是本地定义的)?指针赋值是否ptr3=ptr2
有效?指向局部变量 Vs 的指针是否有任何显着差异?指向全局变量的指针?