小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

C語言 數(shù)組與指針的區(qū)別

 斯卡帕的彩虹 2016-12-05

1) 字符串指針變量是個變量,指向字符串的首地址;而字符串數(shù)組名是個常量,為字符串數(shù)組第一個元素的地址;


2)字符串指針變量可以賦值,而字符串數(shù)組名不能賦值;
對于字符數(shù)組只能對各個元素賦值,不能用以下辦法對字符數(shù)組賦值: char str[14]; str = 'I love you!'; 而對于字符指針變量,可采用如下賦值: char *a; a = 'I love you!'; 賦值給a的是字符串第一個元素的地址


3)定義一個字符串指針變量時,只給指針變量分配了空間,但指針變量存放的地址并沒有分配,即不知道該指針到底指向哪個字符串(當然這種做法是危險的);而定義一個字符串數(shù)組,在編譯時會占用實際的空間,比如int a[100]則會占用400個字節(jié)的空間;


4)對于二維數(shù)組與指針數(shù)組的區(qū)別:指針數(shù)組的每一行長度可以不同,而二維數(shù)組的每行的長度是相同的。



網(wǎng)上找到一篇寫的比較詳細的:

(1)分配內存
  設有定義字符型指針變量與字符數(shù)組的語句如下:
  char *pc ,str[100];
  則系統(tǒng)將為字符數(shù)組str分配100個字節(jié)的內存單元,用于存放100個字符。而系統(tǒng)只為指針變量pc分配4個存儲單元,用于存放一個內存單元的地址。
 ?。?)初始化賦值含義
  字符數(shù)組與字符指針變量的初始化賦值形式相同,但其含義不同。例如:
  char str[ ] ='I am a student ! ' ,s[200];
  char *pc='You are a student ! ' ;
  對于字符數(shù)組,是將字符串放到為數(shù)組分配的存儲空間去,而對于字符型指針變量,是先將字符串存放到內存,然后將存放字符串的內存起始地址送到指針變量pc中。
 ?。?)賦值方式
  字符數(shù)組只能對其元素逐個賦值,而不能將字符串賦給字符數(shù)組名。對于字符指針變量,字符串地址可直接賦給字符指針變量。例如:
  str='I love China! '; //字符數(shù)組名str不能直接賦值,該語句是錯誤的。
  pc='I love China! '; //指針變量pc可以直接賦字符串地址,語句正確 
 ?。?)輸入方式
  可以將字符串直接輸入字符數(shù)組,而不能將字符串直接輸入指針變量。但可將指針變量所指字符串直接輸出。
  例如: cin >> str //正確
  cin >> pc //錯誤
  cout<  (5)值的改變
  在程序執(zhí)行期間,字符數(shù)組名表示的起始地址是不能改變的,而指針變量的值是可以改變的。例如:str=str+5; //錯誤
  pc=str+5; //正確
  小結 字符數(shù)組s[100] 指針變量pc
 ?。?)分配內存 分配100個單元 分配4個單元。
 ?。?)賦值含義 字符串放到數(shù)組存儲空間 先將字符串存放到內存
  將存放串的首地址送到pc中。
 ?。?)賦值方式 只能逐個元素賦值 串地址可賦給pc
 ?。?)輸入方式: 串直接輸入字符數(shù)組 不能將字符串直接輸入指針變量
 ?。?)值的改變: 字符數(shù)組首地址不能改變 指針變量的值可以改變
由以上區(qū)別可以看出,在某些情況下,用指針變量處理字符串,要比用數(shù)組處理字符串方便。

yathing分析這個問題:
一個是變量、一個是數(shù)組,其實也是一個變量符號(這個str本身不能改變而已),從這個共同點出發(fā)考慮問題,變量的事情,無非就是“存儲”、“操作(operate)”兩個方面,下面的任務就是詳細地思考了:
1,空間上的差異:兩種類型是如何存儲的。
2,操作上的差異:如何取用(輸入輸出,賦給別的元素)、如何對賦值、如何改變它們
盡可能地詳盡上面兩方面的內容,回憶平時編程的例子,最后就能寫出答案。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多