解析常量表示式

2021-10-03 02:18:03 字數 1669 閱讀 6015

#define _crt_secure_no_warnings

#include

#include

#include

intisnum

(char ch)

;void

eatspace

(char

*str)

;char

*roundbmatch

(char

*str,

int*pindex)

;double

getnum

(char

*str,

int*pindex)

;double

plus

(char

*str)

;double

multi

(char

*str,

int*pindex)

;//判定是否為數字

intisnum

(char ch)

//去除空格

void

eatspace

(char

*str)

}//括號匹配,返回內層子串

char

*roundbmatch

(char

*str,

int*pindex)

else

break

;default

:break;}

}while(*

(str+++(

*pindex))!=

'\0');

}//獲取數字

double

getnum

(char

*str,

int*pindex)

//處理整數和小數

while(1

)if(*

(str + index)

=='.')}

*pindex = index;

//此時指向符號

return value;}}

//處理加減法

double

plus

(char

*str)

}return value;

}//處理乘除法

double

multi

(char

*str,

int*pindex)

elseif(

*(str + index)

=='/'

)else

}*pindex = index;

return value;

}void

main()

;scanf

("%[^\n]"

, str)

;printf

("輸入%s\n"

, str)

;eatspace

(str)

;printf

("修正%s\n"

,str)

;double value =

plus

(str)

;printf

("表示式結果值%f\n"

, value)

;system

("pause");

}

常量表示式

字面值 是乙個不能改變的值,如數字 字元 字串等。單引號內的是字元字面值,雙引號內的是字串字面值。字面值型別 literal type 算數型別 引用和指標等。常量表示式 const experssion 是指 1 值不會改變 並且 2 在編譯過程就能得到計算結果的表示式。字面量屬於常量表示式,用常...

常量表示式

為了使函式獲取編譯時計算的能力,你必須指定constexpr關鍵字到這個函式。constexpr int multiply int x,int y 將在編譯時計算 const int val multiply 10,10 除了編譯時計算的效能優化,constexpr的另外乙個優勢是,它允許函式被應用...

C constexpr 常量表示式

在c 11中引入了constexpr關鍵字.意思是常量表示式,詳細來說就是在編譯期可求值的表示式.可以修飾表示式,函式,建構函式,類等 可以讓編譯器做出尺度更大的優化.這個關鍵字是為了解決以前的const關鍵字帶來的一些問題,其實在 實戰中const顯然是只有readonly唯讀這個概念,其在很多場...