程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C言語中指針定義的字符串和數組定義的字符串的區別

C言語中指針定義的字符串和數組定義的字符串的區別

編輯:關於C++

C言語中指針定義的字符串和數組定義的字符串的區別。本站提示廣大學習愛好者:(C言語中指針定義的字符串和數組定義的字符串的區別)文章只能為提供參考,不一定能成為您想要的結果。以下是C言語中指針定義的字符串和數組定義的字符串的區別正文


2016-12-03

數組定義字符串:

每次定義數組的時分,零碎都會在內存開拓你指定數組大小的空間,並且數組中的內容關於我們是可讀可寫的,看如下代碼:

 1  #include<stdio.h>
 2  int main()
 3  {
 4      char str[100] = "hello world";
 5      char str1[100] = "hello world";
 6      str[0] = 'd';
 7      printf("%s\n\n",str);
 8      printf("%x\n",&str);
 9      printf("%x\n",&str1);
10      return 0;
11  }
View Code

再看執行後果:

每次定義的數組的首地址是不相反的。

指針定義字符串:

指針定義的字符串是存儲在內存中的靜態存儲空間中,可讀但不可寫,並且假如再定義一個相反的字符串,指針的值不會變,還會指向原來的地址,不會開拓新的存儲空間,看如下代碼:

 1 #include<stdio.h>
 2 int main()
 3 {
 4     char *p = "hello world";
 5     char *p1 = "hello world";
 6     //p[0] = 'd';
 7     printf("%s\n\n",p);
 8     printf("%x\n",p);
 9     printf("%x\n",p1);
10     return 0;
11 }
View Code

看執行後果:

當我們試圖改動hello world中的h時,運轉順序時會自動中止,相反的字符串的指針是指向同一個中央的。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved