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