主要內容:求time_t的最大值、strlen求的是長度、malloc分配字符內存細節、switch的中default細節
#include#include int main() { /***************************************************************** time_t最大值測試 ******************************************************************/ time_t biggest = 0x7fffffff; printf("biggest = %s", ctime(&biggest)); /* ctime()函數把參數轉換為當地時間,這裡有一個細節,printf中我沒有換行,但是輸出卻換行了,經下面測試ctime(&biggest)返回字符串中含有'\n'確實*/ char *test = ctime(&biggest); while(*test++) { if (*test == '\n') printf("find '\\n' int test\n"); } // printf("biggest = %s \n", asctime(gmtime(&biggest))); // 正確語句是這句,上面語句有個時差問題 /***************************************************************** strlen()函數測試 ******************************************************************/ char *a = "abc"; printf("strlen = %d\n",strlen(a)); // strlen求字符串長度,不包含最有的'\0' malloc(strlen(a));// 這是不對的,因該用malloc(strlen(a)+1);要申請'\0' 的內存 /***************************************************************** switch測試 結果說明:default可以放在switch中的任何位置 ******************************************************************/ int b = 2; const int c = 2; // 在switch中添加case c: printf("c"); 可以測試const修飾的c不是常量 switch(b) { case 0: printf("case :0\n"); break; case 1: printf("case :1\n"); break; default: printf("default\n"); break; case 2: printf("case :2\n"); while(b == 2) { printf("b = 1\n"); break; // break;用於跳出最近的那層循環或者switch語句,在這裡跳出循環,然後繼續往下執行 } printf("after break,the program run here!\n "); break; } return 0; }