簡體   English   中英

從 C 中的變量中減去“0”是什么意思?

[英]What does it mean to subtract '0' from a variable in C?

void push(float[],float);

這里st[]是float數據類型的棧, exp[]是char數據類型的數組,存放后綴表達式。

  push(st,(float)(exp[i]-'0'));

不過,我無法弄清楚(exp[i]-'0')部分的目的。 為什么我們要減去'0'

字符基本上無非是一個整數,其值是字符的編碼。

在最常見的編碼方案ASCII中,字符'0'的值是48 ,而字符'3'的值是51 現在,如果我們有一個包含字符'3'的變量someChar並且你執行someChar - '0'它與執行51 - 48相同,這將導致值3

因此,如果您從某處讀取一個數字作為字符,則減去'0'以獲得該數字的整數值。

這也適用於其他編碼,不僅是 ASCII,因為 C 規范規定所有編碼必須具有連續順序的數字。

請注意,此“技巧”不能保證對任何非數字字符都有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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