-
這些是您絕對應該了解的基本概念:
char a[12];定義了乙個字元陣列,陣列名稱是 a,在本例中,a 是指標,它是乙個常量型別,其值在陣列的整個生命週期內是不可變的。
a = "null";在本例中,a 是指向陣列第乙個位址的常量指標,其值在陣列的生存期內是不可變的。 當然,現在不可能為他分配字串。
a = "null";A本身是乙個常量指標,指向陣列的第乙個位址,去引號,得到乙個詞賦值,這時候就把乙個字串常量的第乙個位址賦給他,這樣就比較無厘頭了,咱們就不說了。
char *a;定義了字元指標。
a = "null";為他分配乙個字串常量也給出了常量"null"第乙個位址分配給 a,這是正確的。
a = "null";a 是乙個字元指標,去引號後,結果一定是單個字元值,乙個字元常量的第乙個位址就分配給這個字元,這也是無意義的。
仔細想想。
enjoy!
-
char a[12];
a="null";錯誤。 因為 a 是第乙個位址,而不是指標,所以在建立 a 時確定它不能更改。
a="null";錯誤 因為 *a 是 a[0],所以它儲存乙個字元,如 'n'
char *a;
a="null";沒錯。 將字串“null”的第乙個位址分配給指標 a,即指向“null”。
a="null";錯誤。 乙個。我甚至沒有位址的內容,我怎麼能給他的位址指向的內容賦值?此外,它指向的內容不能以這種方式分配給字串。
-
我說,夥計,你怎麼能這樣定義。
陣列在定義後會分配記憶體,如果它們沒有初始化,它們就是 null,那麼為什麼要將它們清空呢???
您正在定義乙個陣列,如何使用 a 作為指標??? 你犯了多麼大的錯誤。
即使你想分配乙個指標值,例如:int *pf pf=null,也沒關係。
指標 pf 變成空指標,即 pf 指向乙個空位址!
-
char a[12] 定義的 a 是 char* 型別的常量。
char* a 由 char* 定義為變數。
A 的型別為 char。
-
C 允許您將陣列初始化為字串。 例如:
staticcharc=可以寫成:
staticcharc=或刪除 {} 並寫成:
staticcharc=cprogram";
為所有元素分配初始值時,也可以省略長度描述。 例如:staticcharc = C 陣列的長度自動設定為 9。
-
C 允許您將陣列初始化為字串。 例如:
static char c=;它可以寫成:
static char c=;或者刪除 {} 並將其寫成:
static char c="c program";
為所有元素分配初始值時,也可以省略長度描述。 例如:static char c=; 在這種情況下,c 陣列的長度會自動設定為 9。
-
1.直接逐個初始化。
字元陣列:初始化字元陣列的最簡單方法是一次為陣列中的每個元素分配乙個字元。
char str[10]=;
注意:如果大括號中提供的字元數大於陣列的長度,則將被視為語法錯誤; 如果它小於陣列的長度,則只有這些字元陣列的第乙個元素才會自動設定為空字元(即 .'\0' )。
2. 使用字串常量初始化字元陣列:
在 C 中,字串被視為字元陣列。 因此,可以使用字串來初始化字元陣列。
大括號也可以省略。
但是,上述字元陣列的整體賦值只能在初始化字元陣列時使用,不能用於字元陣列的賦值,並且字元陣列的賦值只能用於逐個為其元素賦值,並且下面的賦值方法是錯誤的。
-
初始複製字元陣列:
char str[10]="hello";
char str[10]=;
char str[10]=;
char str[10]=;
char str[10]="hello, world.";
char str="hello, world.";
在第一種情況下,初始 BAI 資料小於陣列長度 du
和前面兩個初始化的例子一樣,這兩個例子的效果是一樣的,dao 的前五個字元是 hello,其餘的都是用的'\0'填充。
第三行和第四行僅指定第乙個字元,其餘部分使用'\0'填充。 第四個示例將整個陣列初始化為'\0'
在第二種情況下,初始化資料等於或超過資料長度。
在這種情況下,多餘的部分將被丟棄,因此最多五個示例的最後乙個字元是'r'.
在這種情況下,使用某些字串函式時要小心,因為陣列不包含它們'\0',這可能導致不可預測的結果。
第三種情況:未指定陣列長度。
在這種情況下,陣列部分不包含顯式指定的'\0',將在編譯時自動新增乙個'\0';
陣列不包含顯式'\0'sizeof=strlen+1
-
a.在函式主體中定義的內建陣列,其元素未初始化。
b.在函式體外部定義的內建陣列,其元素初始化為零。
c.對於類型別,無論陣列在何處定義,都會呼叫類的預設建構函式進行初始化,如果類沒有預設建構函式,則需要顯式初始化。
int a[5]=; //a=
string str[5]=; //str=;
char cal = ; //size=3char cal = ; //size=4char cal = c++;//size=4char cal[3] = c++;errorNote:不能使用陣列直接初始化另乙個陣列,也不能像向量那樣直接賦值。
char a[3] = ;
char b[3];
a=b; //error;
char a[3] = ;
char b(a); //error
-
一般對數。
可以使用以下方法實現複合物的初始化:
1)在丁。bai sense 陣列,初始 du 值被分配給陣列元素。 如:
static int a[10]={0,zhi1,2,3,4,5,6,7,8,9}dao;
經過上述定義和初始化後,乙個 0 = 0,乙個 1 = 1 ,...,a[9]=9。
2) 在初始化期間,您只能將初始值分配給部分元素。例如:
static int a[10]={0,1,2,3,4};
定義的陣列有 10 個元素,但只有前 5 個元素被分配初始值,最後 5 個元素的初始值為 0。
3)如果要使陣列的所有元素都具有0個值,可以使用以下方法:
static int a[10]={0,0,0,0,0,0,0,0,0,0};
不能使用:static int a 10 ={0*10};
如果不為靜態陣列分配初始值,系統將自動將值 0 分配給您定義的陣列的所有元素。
4) 將初始值分配給所有陣列元素時,可以不指定陣列的長度。
硬碟驅動器。 建議你選擇將驅動解壓到sp60284後,右邊包含舊的無聊鍵,將sp60284資料夾拷貝到U盤上,然後連線介面,然後在安裝win8系統的時候,當它出現安裝位置時,選擇載入驅動。 然後瀏覽指定的通話彎曲驅動器,看看安裝是否解決了問題。 >>>More
首先,我會明確地告訴你,選項 c 是正確的,選項 A strcpy 是乙個字串複製函式,它可以將字串 “China” 複製到字元陣列 str2 中並覆蓋 str1 中的 “beijing”,選項 c strcat 是乙個字串連線函式,可以將 “China” 連線到“beijng”的後面。 因此,C. >>>More