指針賦值有幾種方法 c語(yǔ)言字符串指針為什么不能用scanf賦值?
c語(yǔ)言字符串指針為什么不能用scanf賦值?C語(yǔ)言是一種比較低級(jí)的語(yǔ)言,沒(méi)有字符串的概念,只有字符數(shù)組,不能自動(dòng)分配空間,要存儲(chǔ)數(shù)據(jù),必須事先定義存儲(chǔ)空間的大?。「臑椋篶har name[100]必
c語(yǔ)言字符串指針為什么不能用scanf賦值?
C語(yǔ)言是一種比較低級(jí)的語(yǔ)言,沒(méi)有字符串的概念,只有字符數(shù)組,不能自動(dòng)分配空間,要存儲(chǔ)數(shù)據(jù),必須事先定義存儲(chǔ)空間的大小
!更改為:char name[100]必須是常量
scanf(%d%s”,&A[i]。努,a[i]。(姓名)沒(méi)問(wèn)題
!估計(jì)您已經(jīng)看到了這個(gè)定義:char*name=“ABCD”,這也是字符數(shù)組初始化的固定空間。所以您應(yīng)該記住,初始化時(shí)必須保留存儲(chǔ)空間的大小
!另外,如果想達(dá)到高級(jí)語(yǔ)言的效果,還可以使用
a[i]。Name=(char*)malloc(100)/*這里還需要常量*/
scanf(%d%s”,&A[i]。努,a[i]。(姓名)沒(méi)問(wèn)題
C語(yǔ)言中,為什么字符串可以賦值給字符指針變量?
C語(yǔ)言中沒(méi)有字符串類(lèi)型。字符串是一個(gè)字符數(shù)組。即char類(lèi)型的數(shù)組。與普通數(shù)組不同,字符串必須以“0”結(jié)尾。在C語(yǔ)言中,T型一維數(shù)組的第一個(gè)地址等價(jià)于該類(lèi)型的一維指針,即T*型。因此字符串的第一個(gè)地址,即字符數(shù)組,可以用作char*。實(shí)際上,在庫(kù)函數(shù)和大多數(shù)使用字符串作為參數(shù)的函數(shù)中,參數(shù)是char*。