在我們寫**中使用到指標的字串時,經常會出現執行錯誤,大部分出現的錯誤是試圖去改變指標的字串的內容。
指標的字串的內容是儲存在靜態資料區的,是不能夠改變的。
需要使用字元陣列。
例如改變
char *p="abcdef";
p[1]='d';這是錯誤的不能改變裡面的內容,但是可以使用裡面的資料
char p="abcdef";
p[1]='d';這是可以的,陣列是臨時變數,儲存在棧裡面,可以改變裡面的內容,
例如函式:
字串右移n個字元
#include using namespace std;
char *youyi(char *str ,int len, int n)
while(*src)
*str='\0';
return p;
}void main()
{ char str="abcdef";
char *str="abcdef";//錯誤的
char *src="gh";
char *p;
p = mystrcat(str ,src);
cout<
關於字元陣列和字元指標
include void main 對於字元陣列a,其中的內容是可以改變的。可以再次對某個元素賦值 如 a 2 r 正確 a中存放首字元的位址,但不可被改變。a adeafsa 錯誤 對於字元指標變數p,它指向了乙個字串常量,而常量被儲存在常量區,是不可改變的 如 p r 錯誤 不過可以對指標變數p...
關於指標與陣列
在平時的學習中,往往有乙個誤區 陣列等於指標 多數情況下如此,但很多時候卻並不是這樣。首先,file1.c int man 100 file2.c extern int man 上面的例子中會因為型別不匹配而報錯。指標總是有型別限制,是因為編譯器需要知道對指標進行解除引用的時候需要取幾個位元組。例如...
字元陣列與字元指標
10.4 指標與字串 10.4.1 字元陣列與字元指標 在第八章中我們已經詳細討論了字元陣列與字串,字元指標也可以指向乙個字串。我們可以用字串常量對字元指標進行初始化。例如,有說明語句 char str this is a string.是對字元指標進行初始化。此時,字元指標指向的是乙個字串常量的首...