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