如何結束棧的初始化過程(C語言)

2021-07-11 00:00:51 字數 378 閱讀 1612

最近在嘗試著把棧的一些應用,例如進製轉換、括號匹配、逆波蘭計算取、中字尾轉換等寫成乙個大的demo,於是被資料型別的問題搞得略糾結。

主要的問題在於初始化,如果棧中元素是int型別的,初始化的時候使用者通過scanf函式輸入整型,需要設定乙個停止的標識。很多例程中採用數字0或者其他數字作為停止符,這樣的問題就是0永遠都沒有機會出現在棧中。那麼問題就來了,怎麼設定乙個可以檢測的標誌,結束棧的輸入初始化呢?

最容易想到的就是esc鍵。對應的ascii碼為27,注意此時不能使用標準io,要用控制台io。

#include #include while(1)

}

缺點:只能輸入個位數,而且(){}之類的都儲存為ascii碼值。

C語言陣列初始化

陣列宣告時必須指明陣列元素的資料型別以及陣列中元素個數,計算機才可以為陣列預留出足夠的空間。陣列大小必須為常量。define size 10 int a 12 int b 100 c size 可以在宣告時通過初始值列表實現陣列元素初始化 int a 3 如果初始值列表中提供的元素個數少於陣列元素個...

C語言陣列初始化

wchar t wname 128 char cname 256 我感興趣的是 1.這種賦值的結果。2.這種形式是否符合標準編碼規則?我找到了如下資料,可能有助於對這個知識點的掌握。初始化值的個數可少於陣列元素個數。當初始化值的個數少於陣列元素個數時,前面的按序初始化相應值,後面的初始化為 0 全域...

c語言 struct 的初始化

struct資料有3中初始化方法 順序,c風格及c 風格的亂序。1 順序 這種方法很常見,在一般的介紹c的書中都有介紹。順序初始化的特點是 按照成員定義的順序,從前到後逐個初始化 允許只初始化部分成員 在被初始化的成員之前,不能有未初始化的成員。eg struct user oneuser 2 亂序...