C語言
-
字串表現形式、
-
定義初始化、相同的字串所占記憶體地址不相同、
-
C語言特殊處理、字串賦給指標是在記憶體中分配出一段類似字符陣列的空間用來存放字串常量、賦值給指標的是首地址、
-
char a[] = "zi fu chuan"; char b[100]; int c; for ( c = 0; *(a+c) !='\0' ; c++) // !='\0' 不等于字串結束標記、 { *(b + c) = *(a + c);//一個字符一個字符的賦值、將a賦值給b 遇到 !='\0'結束 } *(b + c) = '\0';//沒有0 所以加上、 printf("a是%s\n", a); printf("b是%s\n", b); -
字符指標方式、
void kaobei(char d[], char e[])//字串陣列名做引數、將實參首地址傳遞給a,b、 void kaobei(char *d, char *e)//使用指標傳遞、 { int c = 0; while (d[c] !='\0') { e[c] = d[c]; c++; } e[c] = '\0'; } int main() { char a[] = "內容 是 123"; char b[] = "內容 一定 要比a常"; printf("a=%s\n", a); printf("b=%s\n", b); kaobei(a, b); printf("a=%s\n", a); printf("b=%s\n", b); }
-
-
字串指標做函式引數、
-
//char a[100] = "內容 是 123";//定義初始化\ char a[100] ; //a="內容 是 123";//錯誤的、因為 "內容 是 123"是有地址的、相當于將"內容 是 123"賦值給了a、 strcpy(a, "內容 是 123");//解決3行錯誤、strcpy是拷貝函式、2行加上4行相當于1行 char* a; a = "內容 是 123";//"內容 是 123" 是字串常量、在內容中是有地址的、 -
指標變數的值是可以改變的、
-
char a[] = "內容 是 123"; char *b = a; b = b + 7;//跳過7個位元組、 printf("跳過7個位元組后是 %s\n", b); -
陣列首地址是不可改變的、
-
-
字串指標變數與字符陣列、
- 字符陣列由元素組成、(元素才是有效的記憶體)每個元素存放一個字符、而字符指標中存放的是字串的首地址、字串內容放在字串的陣列中、
2. 定義初始化、相當于將字串內容拷貝到字串陣列中去、
3. 指標變數的值是可以改變的、陣列首地址是不可改變的、
- 字符陣列由元素組成、(元素才是有效的記憶體)每個元素存放一個字符、而字符指標中存放的是字串的首地址、字串內容放在字串的陣列中、
-
拷貝字串是必須注意其長度、
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/37634.html
標籤:C
上一篇:Android 11正式版發布!
