void ConstTest01() {
	const char * txt = "Hello world";
	char chr = 'C';
	char chr2 = 'H';
	char        *           c1 = &chr;	// pointer & value can change.
	char const  *           c2 = &chr;	// pointer can change, value CONST.
	char        * const		c3 = &chr;	// pointer CONST, value can change.
	char const  * const		c4 = &chr;	// pointer CONST, value CONST
    // To find out the error
	//c1++; *c1 = chr2;
	//c2++; *c2 = chr2;
	//c3++; *c3 = chr2;
	//c4++; *c4 = chr2;
}
簡單的判斷 rule : const 其實是在形容前一個運算子的儲存狀態是”不能更改”,
所以 char const 在形容 char 是不能更改的值.
char const * const 則是 形容 char 不能更改, pointer 也不能更改.
額外的是 const char * 是舊的寫法, 現在的 compiler 編譯是其實等同於 char const *,
而 char const * 為甚麼能夠吃上一大條字串, 其實是因為這種不能更改的字串值會存放於 memory 中連續的地址上.
可以想像為
char const * ch = “Hello World”;
等同於宣告
 char[] txt = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘ ‘, ‘W’, ‘o’, ‘r’, ‘l’, ‘d’, 0 }; \\ string must end by zero (0) digit.
char const * ch = txt[0];
而所謂的 ch++ 則是控制 pointer 在記憶體位置上後移一格.
從而達成字串讀取+位移.

