在c語言中 "string"儲存的就是首個字元所在的位址 所以可以把 字串常量"string" 賦值給指標 char *p; p="string" 但不能把字串常量 直接賦給陣列,需要用到 strcpy。 但可以對陣列初始化為 字串,也就是字元陣列 如 char str="string";
兩種初始化的區別:char * p="the fine day" 和 char str="the fine day"的區別, 這兩個都是給字串的初始化,前者只是把字串的首位址給str,沒有分配足夠的記憶體位址來儲存整個字串 , 後者初始化的同時,把他們儲存在陣列中,也就是分配好了所有字元需要的記憶體。 所以如果想把另乙個 字串複製到str中, char str1="the day";
strcpy(p,str1);//錯誤 需要加 p=(char*)malloc(strlen(str1)+1); 才正確
strcpy(str,str1);//正確
示例程式
#include "stdio.h"
#include "string.h"
int main()
字串 用陣列初始化和用指標初始化方法區別
const char ptr1 fine.const char ar fine.以上的宣告中,ptr1和ar都是該字串的位址,但這兩種形式並不完全相同。初始化陣列 字串儲存在靜態儲存區。但是,程式在開始執行時才會為該陣列分配內 存 以上面的宣告為例,陣列形式ar 在計算機的記憶體中分配為乙個內含6 ...
字串初始化指標和初始化陣列區別
定義指標時,編譯器並不為指標所指向的物件分配空間,它只是分配指標本身的空間,除非在定義時同時賦給指標乙個字串常量進行初始化。在ansi c中,初始化指標時所建立的字串常量被定義為唯讀。如果試圖通過指標修改字串的值,程式就會出現未定義的行為。在有些編譯器中,字串常量被存放在只允許讀取的文字段中,以防止...
字串 用陣列初始化和用指標初始化方法
1 字串陣列初始化 1 用足夠的空間的陣列儲存字母串 const char example 40 so big it is.const表示不會更改這個字母串 還有這種 const char example 40 注意最後的空字元 0 沒有這個空字元,這就不是乙個字串,而是乙個字元陣列。2 讓編譯器確...