char類型怎么賦值 char[]數(shù)組該如何賦值?
char[]數(shù)組該如何賦值?定義數(shù)組字符[10]。如何給這個(gè)數(shù)組賦值?1定義時(shí),可以用字符串直接給Chara[10]=“Hello”賦值。注意:您不能先定義它,然后給它賦值,例如Chara[10]a[
char[]數(shù)組該如何賦值?
定義數(shù)組字符[10]。如何給這個(gè)數(shù)組賦值?1定義時(shí),可以用字符串直接給Chara[10]=“Hello”賦值。注意:您不能先定義它,然后給它賦值,例如Chara[10]a[10]=“Hello”,這是錯(cuò)誤的!2將Chara[10]={h“,”e“,”L“,”L“,”O(jiān)“}逐個(gè)賦給數(shù)組中的字符。三。使用strcpy Chara[10]strcpy(a,“hello”)容易出錯(cuò)的情況:1。Chara[10]a[10]=“Hello”//一個(gè)字符怎么能容納一個(gè)字符串?而且,a[10]不存在!2Chara[10]a=“你好”//這很容易發(fā)生。雖然a是指針,但它已經(jīng)指向堆棧中分配的10個(gè)字符的空間?,F(xiàn)在a指向數(shù)據(jù)區(qū)域中的Hello常量。這里的指針a混亂了。這是不允許的!Main(){chars[30]strcpy(s,“好消息!“)/*assign string to array*/.}當(dāng)上面的程序編譯時(shí),當(dāng)遇到chars語句[30]時(shí),編譯器會(huì)在內(nèi)存的某個(gè)地方留下一個(gè)連續(xù)30個(gè)字節(jié)的區(qū)域,并將第一個(gè)字節(jié)的地址分配給s。當(dāng)遇到strcpy(strcpy是turboc2.0的函數(shù))時(shí),首先創(chuàng)建一個(gè)字符串“goodnews!/目標(biāo)文件中的某個(gè)位置。其中/0表示字符串的終止,該字符串在編譯時(shí)自動(dòng)添加,然后逐字符復(fù)制到由s指示的內(nèi)存區(qū)域。因此,在定義字符串?dāng)?shù)組時(shí),元素?cái)?shù)應(yīng)至少比字符串長(zhǎng)度多1個(gè)。
怎樣把一個(gè)char數(shù)組賦值給另一個(gè)char數(shù)組?
例如,#include<stdio。H>#包括<stdlib。H> int main(int argc,char*argv){char a[30]char b[25]=“abcdefgagh”memcpy(a,b,strlen(b))//a使用字符串形式打印a[strlen(b)]=“0”printf(“a=sn”,a)return 0}
1,char type,俗稱字符類型。和其他類型一樣,char類型可以在定義和初始化中聲明(定義)然后賦值(初始化)。使用char定義一個(gè)字符,然后通過用單引號(hào)括起來的單個(gè)字符為其賦值。
2. 當(dāng)然,您也可以在定義變量時(shí)初始化變量(即在聲明變量時(shí)賦值)
3。請(qǐng)注意,字符并不表示字母,單個(gè)字符用單引號(hào)括起來。所謂單字可以是數(shù)字、中文等。
4. 字符類型可以自動(dòng)轉(zhuǎn)換為具有較大存儲(chǔ)空間的int類型。
例如,在下面的示例中,C是一個(gè)字符。當(dāng)它被分配給int類型的I1時(shí),不會(huì)因?yàn)樽詣?dòng)轉(zhuǎn)換而報(bào)告錯(cuò)誤。
5. 當(dāng)int轉(zhuǎn)換為word類型時(shí)(這是從大存儲(chǔ)空間到小存儲(chǔ)空間的轉(zhuǎn)換),需要強(qiáng)轉(zhuǎn)換。
6. 添加強(qiáng)制轉(zhuǎn)換后,它不會(huì)報(bào)告錯(cuò)誤。至于轉(zhuǎn)換什么字符,則與ASCII碼有關(guān)。我在這里不多說了。