[英]Unable to understand output in C
我正在學習C語言中的指針,並在GCC編譯器中嘗試了該程序。
當我嘗試pq
它給出1作為輸出(因為int占用4個字節,p和q的值分別是2358844和2358840,因此輸出1,因為pq
提供4之后1 * 4 = 4個字節)。
但是,一旦我嘗試qp
它就會給出4294967295作為輸出。 它應該給出-1作為輸出,但是我不明白為什么它給出了其他輸出。
這是我的程序。
#include<stdio.h>
#include<conio.h>
void main()
{
int a=5,b=6;
int *p,*q;
p=&a;
q=&b;
printf("p = %u",p);
printf("\nq = %u",q);
printf("\nq-p = %u",q-p);
getch();
}
4294967295是FFFFFFFF或-1作為有符號值。 您正在使用%u將其打印為未簽名
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.