在四個子函數(shù)中有,各是各的,互不干涉,所以main()中的這四個數(shù)組始終沒有被賦值過,空指針指的就是這個 應(yīng)該把這四個數(shù)組的首地址作為四個read()的參數(shù)傳過去,就可以實現(xiàn):“在子函數(shù)中賦值,在main函數(shù)中使用
創(chuàng)新互聯(lián)建站主要從事網(wǎng)站設(shè)計制作、做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)撫州,十載網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
n = scanf("%d",n);
這一句有問題
1. scanf 函數(shù)是有返回值的,它的返回值可以分成三種情況
1) 正整數(shù),表示正確輸入?yún)?shù)的個數(shù)。
例如執(zhí)行 scanf(“%d %d”, a, b);
如果用戶輸入”3 4”,可以正確輸入,返回2(正確輸入了兩個變量);
如果用戶輸入”3,4”,可以正確輸入a,無法輸入b,返回1(正確輸入了一個變量)。
2) 0,表示用戶的輸入不匹配,無法正確輸入任何值。如上例,用戶如果輸入”,3 4”,返回0。
3) EOF,這是在 stdio.h 里面定義的常量(通常值為-1),表示輸入流已經(jīng)結(jié)束。在Windows下,用戶按下CTRL+Z(會看到一個^Z字符)再按下回車(可能需要重復(fù)2次),就表示輸入結(jié)束;Linux/Unix下使用CTRL+D表示輸入結(jié)束。
你這個輸入一個返回值就是1,因此n也會一直等于一
我們都知道基本的賦值運(yùn)算符是"=",他的優(yōu)先級別低于其他的運(yùn)算符,所以對該運(yùn)算符往往最后讀取。下面和大家分享一下C語言賦值運(yùn)算符與賦值表達(dá)式,一起來看看吧!
C語言賦值運(yùn)算符與賦值表達(dá)式1
一、賦值運(yùn)算符與賦值表達(dá)式
賦值符號“=“就是賦值運(yùn)算符,作用是將一個數(shù)據(jù)賦給一個變量或?qū)⒁粋€變量的值賦給另一個變量,由賦值運(yùn)算符組成的表達(dá)式稱為賦值表達(dá)式。一般形式為:
變量名=表達(dá)式
在程序中可以多次給一個變量賦值,每賦一次值,與它相應(yīng)的存儲單元中的數(shù)據(jù)就被更新一次,內(nèi)存中當(dāng)前的數(shù)據(jù)就是最后一次所賦值的那個數(shù)據(jù)。
例:a=12;此表達(dá)式讀作“將10的值賦值給變量a”。
說明:
a、如果賦值號兩邊的運(yùn)算對象類型不一致,系統(tǒng)會自動進(jìn)行類型轉(zhuǎn)換,轉(zhuǎn)換的規(guī)則:將賦值號右邊表達(dá)式的值的類型轉(zhuǎn)換成賦值號左邊變量的類型,
例:inty=3.5;在變量y中最終存儲的是整數(shù)3。
b、可以將復(fù)制表達(dá)式的.值再賦值給變量,形成連續(xù)賦值。
例如:x=y=25是一個連續(xù)賦值表達(dá)式,x=y=25等價于x=(y=25),所以表達(dá)式x=y=25最終的值為25。
二、復(fù)合的賦值運(yùn)算符
在賦值運(yùn)算符之前加上其他運(yùn)算符可以構(gòu)成復(fù)合賦值運(yùn)算符。其中與算術(shù)運(yùn)算有關(guān)的復(fù)合運(yùn)算符是:+=,—=,x=,/=,%=。
兩個符號之間不可以有空格,復(fù)合賦值運(yùn)算符的優(yōu)先級與賦值運(yùn)算符的相同。表達(dá)式n+=1等價于n=n+1,作用是取變量n中的值增1再賦給變量n,其他復(fù)合的賦值運(yùn)算符的運(yùn)算規(guī)則依次類推。
如求表達(dá)a+=a—=axa的值,其中a的初值為12。
步驟:
(1)先進(jìn)行“a—=axa“運(yùn)算,相當(dāng)于a=a—axa=12—144=—132。
(2)再進(jìn)行“a+=—132“運(yùn)算,相當(dāng)于a=a+(—132)=—132—132=—264。
C語言賦值運(yùn)算符與賦值表達(dá)式2
其一般形式為:
變量=表達(dá)式
例如:
x=a+b
w=sin(a)+sin(b)
y=i+++--j
賦值表達(dá)式的功能是計算表達(dá)式的值再賦予左邊的變量。賦值運(yùn)算符具有右結(jié)合性,因此a=b=c=5可理解為a=(b=(c=5))。
在其它高級語言中,賦值構(gòu)成了一個語句,稱為賦值語句。 而在C中,把“=”定義為運(yùn)算符,從而組成賦值表達(dá)式。 凡是表達(dá)式可以出現(xiàn)的地方均可出現(xiàn)賦值表達(dá)式。
例如:式子x=(a=5)+(b=8)是合法的。它的意義是把5賦予a,8賦予b,再把a(bǔ),b相加,和賦予x,故x應(yīng)等于13。
在C語言中也可以組成賦值語句,按照C語言規(guī)定,任何表達(dá)式在其未尾加上分號就構(gòu)成為語句。因此如x=8;a=b=c=5;都是賦值語句,在前面各例中我們已大量使用過了。
類型轉(zhuǎn)換
如果賦值運(yùn)算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動進(jìn)行類型轉(zhuǎn)換,即把賦值號右邊的類型換成左邊的類型。具體規(guī)定如下:
實型賦予整型,舍去小數(shù)部分。
整型賦予實型,數(shù)值不變,但將以浮點(diǎn)形式存放,即增加小數(shù)部分(小數(shù)部分的值為0)。
字符型賦予整型,由于字符型為一個字節(jié),而整型為二個字節(jié),故將字符的ASCII碼值放到整型量的低八位中,高八位為0。整型賦予字符型,只把低八位賦予字符量。
【例3-18】
#include
int main(void){
int a,b=322;
float x,y=8.88;
char c1=k,c2;
a=y;
x=b;
a=c1;
c2=b;
printf("%d,%f,%d,%c",a,x,a,c2);
return 0;
}
本例表明了上述賦值運(yùn)算中類型轉(zhuǎn)換的規(guī)則。a為整型,賦予實型量y值8.88后只取整數(shù)8。x為實型,賦予整型量b值322, 后增加了小數(shù)部分。字符型量c1賦予a變?yōu)檎?,整型量b賦予c2 后取其低八位成為字符型(b的低八位為01000010,即十進(jìn)制66,按ASCII碼對應(yīng)于字符B)。
注意:經(jīng)大家反饋,筆者發(fā)現(xiàn)上面的例子容易造成誤解,現(xiàn)已對代碼進(jìn)行更改,更改時間 2014-07-04 09:12:45,看評論的讀者請注意評論時間,不要混淆。
更改后的代碼如下:
#include
int main(void){
int a,c,b=322;
float x,y=8.88;
char c1=k,c2;
a=y;
x=b;
c=c1;
c2=b;
printf("a=%d, x=%f, c=%d, c2=%c ", a, x, c, c2);
return 0;
}
輸出結(jié)果:
a=8, x=322.000000, c=107, c2=B
復(fù)合的賦值運(yùn)算符
在賦值符“=”之前加上其它二目運(yùn)算符可構(gòu)成復(fù)合賦值符。如+=、-=、*=、/=、%=、=、=、=、^=、|=。
構(gòu)成復(fù)合賦值表達(dá)式的一般形式為:
變量 雙目運(yùn)算符=表達(dá)式
它等效于
變量=變量 運(yùn)算符 表達(dá)式
例如:
a+=5 等價于 a=a+5
x*=y+7 等價于 x=x*(y+7)
r%=p 等價于 r=r%p
分享題目:c語言函數(shù)賦值怎么算,c語言賦值運(yùn)算符的值
文章分享:http://sd-ha.com/article12/hooegc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、云服務(wù)器、微信公眾號、網(wǎng)站設(shè)計公司、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)