標籤:
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類型字串和字元數組的區別