簡體   English   中英

無法理解C中的輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM