C語言中的字串數組 指標

來源:互聯網
上載者:User

標籤:

1、字串

    

    用“”引起來的內容,就是字串。

 

    在C語言中有沒有專門的字串的變數?  沒有

 

    所以我們使用字元數組來儲存字串。(把字串的每一個字元儲存到字元數組的每一個元素中,並且會多存放一個‘\0’)

 

    ‘\0‘ 字串的結束標記,ascII碼錶中值是 0 對應的字元。NUT,NULL

 

2、字元數組

   

    1)定義

 

       char 數祖名[長度];   

    

       char str[200]; 表示定義一個長度為200的字元數組,如果用來儲存字串,則字串的最大長度是199,留出一個給‘\0‘

 

       char str[3]={‘a‘,‘b‘,‘c‘};  //不能以%s進行輸出

 

    2)初始化

 

       (1)完全初始化

 

           char str[3]={‘a‘,‘b‘,‘c‘};

 

       (2)部分初始化

           

           char str[3]={‘a‘,‘b‘};

 

       (3)用字串進行初始化

 

           char str[10]="itcast";  //佔用了7個位元組因為‘\0‘佔用了一個

           char str[10]={"itcast"};

 

    3)字元數組的引用

 

       如果把字元數組的內容逐個取出,str[0]、str[1]....str[n-1];

 

       %s 字串的格式控制符把字元數組整體進行輸出

 

       %s 給一個字元數組的首地址,系統會自動從首地址開始連續讀取直到遇到‘\0‘結束

 

 

    4)儲存細節

 

       字元數組儲存的細節:

  

            連續的一片儲存地區(地址是連續的),每個字元佔用1個位元組

 

       計算字元數組(字串)的長度

   

       針對這種定義方法,求長度(會包含‘\0‘):char str[]="abc";    //4

 

                   sizeof(str)/sizeof(char) =  sizeof(str);

 

       strlen也可以計算字串的長度(不包含‘\0‘):

 

                  strlen(str);                               //3

 

 

3、字元數字和普通數組的區別

 

    char str[];   //只能存字元型資料

    int  arr[];   //只能存整型   資料

 

 

4、常見的字串函數6個

 

    gets(數組名)   表示擷取從鍵盤數輸入的字串(可以接收空格)

    puts(數組名)   表示講數組的內容輸出到控制台(可以自動換行)

    strcat(數組名1,字串) 表示把字串連結到數組1中(回覆蓋數組1的\0)

    strcpy(數組名1,字串) 表示把字串拷貝到數組1中,會覆蓋數組1中原有的內容

    strcmp(字串1,字串2) 比較兩個字串的大小

 

    字串1>字串2    >0  

    字串1<字串2    <0

    字串1==字串2   ==0

 

    strlen(數組名) 計算字串的長度(不包括\0)

 

 

 

5、什麼是地址?什麼是指標?

 

    記憶體被作業系統劃分了若干個儲存單元,每個單元是1個位元組(8位)

    每個位元組都有位元組的地址,這個地址就叫指標。

 

    地址和記憶體單元是兩個不同的概念

 

    地址是記憶體單元的編號

    記憶體單元是地址對應的實際儲存內容。

 

 

6、指標變數

 

    用來存放地址的變數,就稱為指標變數

 

    1)定義

 

       資料類型  *指標變數名 ;      //指標變數是個變數,指標是常量

 

       "*" 在兩個場合起作用:

       定義指標的時候使用   int *a;  // *表示定義一個指標變數

       在指標對應的儲存單元內容的時候用     *a   //表示擷取指標變數中存放的地址所對應的儲存內容

 

    2)初始化

    

       指標定義完成以後,要初始化,如果不初始化,則這個指標成為野指標

 

       可以用NULL 也可以用 0 進行初始化,表示這是一個null 指標,什麼也不指。

 

    

       正常情況下的初始化

     

       int a;

       int  *p1 = &a;

 

    3)存取方法

 

       *指標變數  //表示擷取指標變數中存放的地址所對應的儲存單元的內容

 

7、指標的使用情境

 

       1)間接修改變數的值

 

 

8、多級指標

 

       指標的指標

 

 

9、指標為什麼要區分類型

 

       1)資料有不同類型,要指向不類型的資料也需要不同的指標

     

       2)指標是一個地址,*指標變數  不知道取多少個位元組的內容

C語言中的字串數組 指標

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.