程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言基礎教程(四)指針、結構、聯合和枚舉(7)

C語言基礎教程(四)指針、結構、聯合和枚舉(7)

編輯:關於C語言
3.字符指針
我們已經知道,字符串常量是由雙引號括起來的字符序列,例如:
"a string"
就是一個字符串常量,該字符串中因為字符a後面還有一個空格字符,所以它由8個字符序列組成。在程序中如出現字符串常量C編譯程序就給字符串常量按排一存貯區域,這個區域是靜態的,在整個程序運行的過程中始終占用,平時所講的字符串常量的長度是指該字符串的字符個數,但在按排存貯區域時,C編譯程序還自動給該字符串序列的末尾加上一個空字符'\0',用來標志字符串的結束,因此一個字符串常量所占的存貯區域的字節數總比它的字符個數多一個字節。
Turbo C中操作一個字符串常量的方法有:
(1).把字符串常量存放在一個字符數組之中,例如:
char s[]="a string";
數組s共有9個元素所組成,其中s[8]中的內容是'\0'。實際上,在字符數組定義的過程中,編譯程序直接把字符串復寫到數組中,即對數組s初始化。
(2).用字符指針指向字符串,然後通過字符指針來訪問字符串存貯區域。當字符串常量在表達式中出現時,根據數組的類型轉換規則,它被轉換成字符指針。因此,若我們定義了一字符指針cp:
char *cp;
於是可用:
cp="a string";
使cp指向字符串常量中的第0號字符a,如圖7.所示。
cp
┏━━━┓ ┏━┳━┳━┳━┳━┳━┳━┳━┳━┓
┃ ─╂─→ ┃a ┃ ┃s ┃t ┃r ┃i ┃n ┃g ┃\0┃
┗━━━┛ ┗━┻━┻━┻━┻━┻━┻━┻━┻━┛
圖7.
以後我們可通過cp來訪問這一存貯區域,如*cp或cp[0]就是字符a,而cp[i]或*(cp+i)就相當於字符串的第i號字符,但企圖通過指針來修改字符串常量的行為是沒有意義的。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved