C 字符串常量和字符串變量定義和區別


字符串常量

定義:在一個雙引號""內的字符序列或者轉義字符序列稱為字符串常量

例如:"HA HA!"  "abc"  "\n\t"

這些字符串常量是不能改變的,如果試圖改變指針所指向的內容是錯誤的

因為字符串常量是存在靜態內存區的,不可以改變的。

如定義字符串常量:

char* a="i love you.";

*a='h';  //試圖改變它

這是錯誤的。系統顯示:

string.exe 中的 0x00d71398 處未處理的異常: 0xC0000005: 寫入位置 0x00d7573c 時發生訪問沖突或者報該內存不能為written。

字符串變量

在C語言中沒有純粹的c語言字符串變量,可以通過一個字符數組來體現,這樣就

可以對字符數組中的內容進行改變!如上式可改為。

如定義字符串變量:

 char a[]="i love you.";
 *a='h';

 

/**

*字符串常量
*程序將會報錯,不能改變字符串常量值。

*修改失敗

**/

#include <stdio.h>
#include <stdlib.h>

void main()
{

char *str = "abcdef";
printf("%s,%p\n", str,str);
*str = 'C'; //修改第三個字符為大寫
printf("%s,%p\n", str);

}

 

/**

*字符串變量
*程序將改變字符串變量中其中的值。

*修改成功

**/

#include <stdio.h>
#include <stdlib.h>

void main()
{

char str[] = "abcdef";
char *p_str = str;
printf("%s\n", p_str);
*(p_str+2) = 'C'; //修改第三個字符為大寫
printf("%s\n", p_str);

}

 

小結:

字符串常量:不能對值修改。  常量:"abc" 、123、char *str = "abcdef"、"\n"

字符串變量:能對值修改 。    變量:char c = "a"、char arr[] = "abc"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM