我刚刚开始学习C编程中的指针,我遇到了%p,%u格式说明符,每当我使用%u时它都会显示警告,并且总是更改输出,当我使用%p时它会显示变量的地址我,但总是改变它,为什么会发生这种情况任何人都可以解释吗?
#include<stdio.h>
int main()
{
int i=3;
int *j;
j=&i;
printf("Address of i= %p\n",&i);
printf("Address of i=%p\n",&j);
}
请告诉我,我刚刚开始学习 C 和编程,例如,除了 html 之外,我实际上没有任何编码经验
您将
i
的地址(即 &i
)分配给变量 j
。因此,&i
和j
应该具有相同的值:
printf("Address of i= %p\n", (void *) &i);
printf("Address of i=%p\n", (void *) j);
另一方面,表达式
&j
是变量j
的地址,而不是它的值。由于它的地址与
i
不同,因此 &i
和 &j
应该不同。