scanf不能對(duì)指針賦值嗎 c語(yǔ)言字符串指針為什么不能用scanf賦值?
c語(yǔ)言字符串指針為什么不能用scanf賦值?C語(yǔ)言是一種比較低級(jí)的語(yǔ)言,沒(méi)有字符串的概念,只有字符數(shù)組,不能自動(dòng)分配空間,要存儲(chǔ)數(shù)據(jù),必須事先定義存儲(chǔ)空間的大??!更改為:char 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ǔ)言中怎么給一個(gè)結(jié)構(gòu)體用scanf進(jìn)行賦值?
結(jié)構(gòu)數(shù)組指針用作函數(shù)參數(shù),通過(guò)數(shù)組的第一個(gè)地址和偏移量為結(jié)構(gòu)數(shù)組分配scanf值。在函數(shù)中,它指向的內(nèi)存是通過(guò)指針間接訪問(wèn)的。例如:編寫一個(gè)函數(shù),輸入5個(gè)學(xué)生號(hào)(int)、5個(gè)姓名(string)、5個(gè)分?jǐn)?shù)數(shù)組(每組3個(gè)分?jǐn)?shù))(int[3]),依次調(diào)用函數(shù)#include