原创 C 數組基礎知識分析

C 數組基礎知識分析 數組名含義 一言以蔽之,數組名就是一個指向比其所在維度低一維的東西的指針。讓我們再深入的分析一下 一維數組 比一維再低一維的就是元素。因此,一維數組名就是一個指向所存元素類型的指針。且其值爲首元素地址。如果有 int

原创 C 逗號運算符

C 逗號運算符 語法格式 exp1, exp2, exp3, ..., expN; 執行效果 運算符中每個表達式exp(i)都會被計算,且整個逗號表達式的最終結果爲最後一個表達式expN的值。 代碼舉例 #include <stdio.h

原创 C strchr strrchr查找一個字符

C strchr strrchr查找一個字符 頭文件 string.h 函數原型 char *strchr(char const *str, int ch); char *strrchr(char const *str, int ch);

原创 C strcmp 字符串比較

C strcmp 字符串比較 頭文件 string.h 函數原型 int strcmp(const char *s1, const char *s2); 返回的是一個int。 注意事項 注意比較的結果是依照字典序確定的: 如果 s1

原创 C 函數值傳遞和指針傳遞的效率問題

C 函數值傳遞和指針傳遞的效率問題 C中有兩種傳遞,值傳遞和指針(地址)傳遞。值傳遞需要把數據的一份拷貝傳遞入函數形參表,並存儲在棧中,函數返回後彈出棧,拷貝被刪除。而指針傳遞則不然。如果形參表是指針,那麼函數在執行時會直接去指針指向的地

原创 C strcpy

C strcpy 頭文件 string.h 函數原型 char *strcpy(char *dst, const char *src); 返回的是第一個參數dst的拷貝。 注意事項 dst的約束 由於 dst 參數將進行修改,所以它

原创 C 運算符優先級與記憶口訣

運算符詳情表 優先級 運算符 名稱或含義 使用形式 結合方向 說明 1 [] 數組下標 數組名[常量表達式] 左到右 () 圓括號 (表達式)/函數名(形參表) . 成員選擇

原创 關於指針的小雜碎

關於指針的小雜碎 關於指針的一些小點,這裏簡單整理下 間接取值(指針解引用)的含義 根據指針找內容的過程被稱爲:間接取值 或 指針的解引用 NULL與0的關係 NULL在外部表現爲0。爲指針賦值NULL,等價於爲指針賦予0。用代碼驗證下:

原创 C strpbrk 查找任意幾個字符

C strpbrk 查找任意幾個字符 頭文件 string.h 函數原型 char *strpbrk(char const *str, char const *group); 返回的是字符集合group中任意字符在str中第一次出現的位置

原创 HotSpot GC 具體實現關鍵點概要

HotSpot GC 具體實現關鍵點概要 GC roots 枚舉過程 枚舉過程的困難點: 範圍大: GC roots主要在全局性的引用(常量與靜態變量)和執行上下文(如棧幀中的本地變量表)。現在程序僅僅就方法區而言就很大,程序整體體積更

原创 Java GC 日誌格式理解小結

Java GC 日誌格式理解小結 下面以一個典型的GC日誌做分析: 33.125: [GC[DefNew:3324K->152K(3712K), 0.0025925 secs]3324K->152K( 11904K), 0.0031680

原创 C 可指定長度的字符串函數

C 可指定長度的字符串函數 頭文件 string.h 函數原型 char *strncpy(char *dst, char const *src, size_t len); char *strncat(char *dst, char co

原创 C strlen

C strlen 頭文件 string.h 函數原型 size_t strlen(char const *string); 這個size_t是在頭文件stddef.h中定義的,是一個無符號整型類型。 注意事項 注意它的返回值,是一個無符號

原创 C strcat

C strcat 頭文件 string.h 函數原型 char *strcat(char *dst, const char *src); 返回的是第一個參數dst的拷貝,也就是一個指向目標字符數組的指針。此函數用於拼接字符串。 注意

原创 C 可變參數的使用

C 可變參數的使用 C中的可變參數需要使用 stdarg.h 頭文件。此頭文件中聲明瞭一個類型va_list和三個函數——va_start、va_arg 和 va_end。讓我們先看一個求均值函數的實現,看看C中可變參數是如何使用的。 樣