C類型字串和字元數組的區別

來源:互聯網
上載者:User

標籤:

 

1、字串和字元數組的區別,字元數組和普通數組一樣,裡面的每個元素是一個個的字元,字串是存在字元數組中的,字串的結尾處補上了“\0”截止符。

定義過字串後,得到的是字元數組的首元素的指標,在結尾處加入截止符,可以方便的訪問字串中的任何一個元素。
C類型的字串是存在字元數組中的,在字串的結尾處補上"\0",這個結尾符是用來標誌字串結尾的,它的作用是
const * p; //p是一個常量指標

 

2、數組名和指標的區別

int a [20];

int *p =a;

(1)數組名的內涵在於其指代實體是一種資料結構,這種資料結構就是數組;所以sizeof(a) = 80;

(2)數組名的外延在於其可以轉換為指向其指代實體的指標,而且是一個指標常量

(3)指向數組的指標則是另外一種變數類型(在WIN32平台下,長度為4),僅僅意味著數組的存放地址。

 

3、數組和鏈表的優缺點,什麼時候使用數組,什麼時候使用鏈表?

(1)數組在記憶體中是連續儲存的,通過數組下標可以快速存取任何一個元素,其時間複雜度是O(1);鏈表在記憶體中不是線性儲存的,訪問其中任何一個元素都需要從頭開始遍曆,時間複雜度O(n);

(2)數組需要事先確定大小,會造成記憶體浪費,鏈表則較簡單,管理方便;

(3)數組中進行插入和刪除操作複雜,需要移動大量的元素;鏈表中進行插入和刪除則很簡單,只需要改變指標的指向即可。

(4)數組操作簡單,鏈表複雜,但是功能強大,自由度高。

 

#include <iostream>#include <CSTRING>using namespace std;int Lengh(const char *str);int main(){//定義一個字串char *str = "the price is five pounds";char *p = str;while(*p++){cout << *p;}cout << "\nthe length of str is: " << Lengh(str);return 0;}//統計字串的長度int Lengh(const char *str){const char *p= str;int n=0;while(*p++){n++;}return n;}


 

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.