C語言switch 中default子句的作用
C語言switch 中default子句的作用
首先來想一下,在switch語句中,如果表示式的值與所有的case標籤的值都不匹配怎麼辦? 其實也沒什麼-----所有語句不過是跳過而已。程式並不會終止,也不會提示任何錯誤,因為這種情況下在C中並不認為是個錯誤。
但是,如果你並不想忽略所有case標籤的表示式值時又要如何去做?這時候就需要在語句列表中增加一條default子句,把這個標籤:
default:
寫在任何一個case標籤可以出現的位置。當switch表示式的值並不匹配所有的case標籤的值時,這個default子句後面的語句就會執行。所以,每個switch語句中只能出現一條default子句。但是它可以出現在語句列表的任何位置,而且語句流會像貫穿一個case標籤一樣貫穿default子句。
提示:
在每個switch語句中都放上一條default子句是個好習慣,因為這樣做可以檢測到任何非法值。否則,程式將若無其事的繼續執行,並不提示任何錯誤。這個規則唯一合理的例外是表示式的值在先前已經進行過有效的檢查,並且你只對表示式可能出現的部分值感興趣。
相關推薦
C語言switch 中default子句的作用
C語言switch 中default子句的作用 首先來想一下,在switch語句中,如果表示式的值與所有的case標籤的值都不匹配怎麼辦? 其實也沒什麼-----所有語句不過是跳過而已。程式並不會終止,也不會提示任何錯誤,因為這種情況下在C中並不認為是個錯誤。 但是,如果你並不想忽略所有
C語言switch case語句中定義變數問題
這個問題需要分開討論,C 語言和 C++ 的標準定義是不同的。 C++ int Caset(int a) { switch (a) { case 1: int b = 1; st
loadrunner C語言switch case
ecc image save ase style get res cti src 1 Action() 2 { 3 char *p=NULL; 4 web_reg_find("Fail=NotFound", 5 "Search=A
C語言struct中的長度可變數組(Flexible array member)
wing art arr item 1 eof AI clas follow erro C_struct中的長度可變數組(Flexible array member) Flexible array member is a feature introduced in the
c語言 陣列中字串的旋轉(左旋)(右旋)
在陣列中定義一個字串,該字串由“ abcdef ” 組成,所謂左旋即是讓左邊的第一個字元旋轉到右邊去,左旋一個字元即是產生“ bcdefa ”這樣的字串,右旋與之相反。 為了控制左(右)旋的字元數,需要製作一個可以改
正確理解C語言指標中的 &a+1,假設a為一個數組
1.int a[5]={1,2,3,4,5}; int p=(int)(&a+1); printf("%d",*(p-1)); 答案為什麼是5? 這個問題的關鍵是理解 &a a是一個數組名,也就是陣列的首地址。 對a進行取地址運算子,得到的是一個指向陣列
C語言printf中的自增自減執行
源程式 int main() { int i = 0; printf("%d,%d,%d\n",i++,--i,i++); return 0; } 我們預期的結果應該是:0,0,0 但實際結果為:0,1,0 原理我也弄得不是很明白,我借鑑了幾篇文章,理解到了計
c語言陣列中a和&a[0]的區別
p=a與p=&a[o] 等價解釋: p=&a[0] 與 p=a 等價是指,a和&a[0] 指向同一個地址(只是表示的意義不一樣)。 a是整個元素的地址,也就是陣列的起始地址,而&a[0]是陣列首元素a[0]的地址,所以他們指向的地址是相同的. 這兩者的
嵌入式C語言之深度解讀C語言的儲存域,作用域,生命週期,連結屬性
***儲存類: 就是儲存型別,描述,C語言變數的儲存地址。 記憶體的管理方式:棧 堆 資料段 bss段 .text段。 一個變數的儲存型別就是描述這個變數儲存在何種記憶體段之
C語言關鍵字淺析-default
### C語言關鍵字淺析系列 ### ### ISO/ANSI C 關鍵字 ### default關鍵字用在switch分支語句中 一般與case搭配使用,含義是預設的其他條件 default的作用是: 標記switch語句中的預設情況下的程式開始位置。
如何在C語言程式中統計輸入漢字的個數
C中的漢字用“機內碼”,一個漢字兩位元組,最高位都是1,所以可以用下列程式碼求得一個字串裡漢字的個數: #include<stdio.h> #include<string.h> int main() { char s[1000]; int cn,i,all; whil
C語言(C++語言)中##(兩個井號)和#(一個井號)用法[轉]
C語言(C++語言)中的巨集(Macro)屬於編譯器預處理的範疇,屬於編譯期概念(而非執行期概念)。下面對常遇到的巨集的使用問題做了簡單總結。 關 於#和## 在C語言的巨集中,#的功能是將其後面的巨集引數進行字串化操作(Stringfication),簡單說就是在對它所引用的巨集變數通過替換後
C語言字串中根據特定字元(串)分割
C語言字串操作函式有很多,這裡舉出需要用到的,其他請自行查詢。 1、len = strlen(p) ;//取字串長度 原型:size_t strlen(const char *s); 功能:統計字串string中字元的個數,字串的長度在 size_t 返回值中。
C語言巨集中#、##運算子的使用
#include <stdio.h> #define P1(a) printf("%s^2 = %d\r\n", #a, (a)*(a)) #define P2
c語言陣列中a和&a[0]的區別
p=a與p=&a[o] 等價解釋: p=&a[0] 與 p=a 等價是指,a和&a[0] 指向同一個地址(只是表示的意義不一樣)。 a是整個元素的地址,也就是陣列的起始地址,
C/C++ 的巨集中#和##的作用和展開
C/C++ 的巨集中: (1) # 的功能是將其後面的巨集引數進行字串化操作,簡單說就是在對它所引用的巨集變數通過替換後在其左右各加上一個雙引號。 也就是說: #define __TO_STRING_IMPL(x) #x 中的#X, 則巨集變數X所引用的是巨集引數中的X,因為,#X會
C語言字元中兩個字串拼接(古月)
最忌學習了C語言的基礎,深刻的感受到了跨平臺語言是多麼的強大,我們都是站在了巨人的肩膀上.下面就是C語言將兩個字串拼接起來的程式碼 #include<stdio.h> int main(void) { char arr1[] = "hello"; // 定義兩個字元陣
將漢字儲存在C語言字元中
其實在C語言中可以儲存漢字,但是這種方式不作為推薦方法使用,這裡只是介紹一個小技巧。 #include<stdio.h> void main() { char x[] ="你好"; ch
c語言-switch
一.switch函式意義 選擇性執行 二.switch函式結構 1 switch(表示式) 2 { 3 case: 常量表達式; 4 語句1; 5 break; 6 case: 常量
C語言在中中sqrt()函式的使用
C語言在中<math.h>中sqrt()函式的使用: 功 能: 計算一個非負實數的平方根 函式原型: 在VC6.0中的math.h標頭檔案的函式原型為double sqrt(double); 說明:sqrt系Square Root Calculations(