| 導購 | 订阅 | 在线投稿
分享
 
 
 

字符指針和字符數組

2007-02-01 20:10:51  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
  字符指針和字符數組
  char* s1="hello";
  char s2[]="world";
  兩個表達式的含義是一樣的.
  如果講不同之處的話,VC6中編譯時,對這兩種定義進行了不同的處理;
  char *s1 = "hello"; 中的"hello",編譯時指針指向的區域位于PE文件的.rdata節中,是只讀的.
  不信的話,你可以試試:
  main()
  {
   char *s1="hello";
   char s2[]="world";
   *(s2+2)='x'; //正確
   *(s1+2)='x'; //執行時出錯.
  }
  1.嚴格的說兩個表達的意思是不完全一樣的,因爲前者是個字符串指針,這個指針S1所存的地址就是存儲字符串前8個字節即hello/n/n/n的那個地址。
   2.而後者是字符數組。每個字符都有一個獨立的地址。
  見圖示。
王朝网络

  vchelp論壇
 
字符指針和字符數組 char* s1="hello"; char s2[]="world"; 兩個表達式的含義是一樣的. 如果講不同之處的話,VC6中編譯時,對這兩種定義進行了不同的處理; char *s1 = "hello"; 中的"hello",編譯時指針指向的區域位于PE文件的.rdata節中,是只讀的. 不信的話,你可以試試: main() { char *s1="hello"; char s2[]="world"; *(s2+2)='x'; //正確 *(s1+2)='x'; //執行時出錯. } 1.嚴格的說兩個表達的意思是不完全一樣的,因爲前者是個字符串指針,這個指針S1所存的地址就是存儲字符串前8個字節即hello/n/n/n的那個地址。 2.而後者是字符數組。每個字符都有一個獨立的地址。 見圖示。 [url=/bbs/detail_837875.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1170331851759.png[/img][/url] vchelp論壇
󰈣󰈤
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
  免責聲明:本文僅代表作者個人觀點,與王朝網絡無關。王朝網絡登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
© 2005- 王朝網路 版權所有