資料型別 scanf函式

2021-07-22 01:53:39 字數 2538 閱讀 1553

注意點:為變數賦值的時候,賦值的資料的型別必須要和變數的型別一致,否則就會出現問題

當我們為變數賦值的時候,如富賦值的資料的型別和變數的型別不一致.這個時候c系統會將賦值的資料型別轉換為變數的型別,然後再賦值,這樣的情況叫做自動型別轉換.

當cpu執行到scanf這個函式的時候,cpu執行就會暫停,不會繼續執行下去了,並等待使用者輸入資料,當使用者輸入完畢資料,按下回車表示輸入完畢,這個時候,就會將使用者輸入的資料複製給後面指定的變數

在執行scanf函式的時候,會讓使用者輸入乙個資料,資料輸入完畢之後,並不是將這個資料直接賦值給變數,二十先將資料儲存在緩衝區,輸入的任何資料都會儲存在緩衝區中,當需要給某個變數賦值的時候,會先去緩衝區裡查詢有沒有資料,如果沒有才會在控制台要求使用者輸入資料

緩衝區總結

1.當從緩衝區中拿資料的時候,如果要拿的資料的型別是整形或實型,遇到空格、回車、tab鍵就會被自動忽略,繼續往下拿

2.當從緩衝區拿資料的時候,如果要拿的資料的型別是字元型,不會忽略任何資料

解決方法

rewind(stdin);這句話的作用是將緩衝區的資料全部清空

方法一:再宣告乙個臨時變數

int num1,num2,temp;

num1 = 10, num2 = 15,temp = 0;

temp = num1;

num1 = num2;

num2 = temp;

方法二:利用算術運算

int num1,num2;

num 1 =10,num 2 = 15;

num 1 = num1 + num2;

num 2 = num1 - num2;

num 1 = num1 - num2;

方法三:利用異或運算表示式

結果x^x

0x^0

xx^y^z

x^(y^z)

x^yy^x

int num,num2;

num1 = 10;num

2 = 15;

num1 = num1^ num2;

num2 = num1^ num2;

num1 = num1^ num2;

一般情況下,我們要求要處理表示式的結果.處理方式為:將表示式的結果通過賦值符號存在乙個變數中算術運算子作用+

加號-減號*

乘號/除號%

取餘=賦值

注意點

1.如果參與算術表示式的運算元的型別都是一致的,那麼算術表示式的及結果的型別就是這個型別

2.如果將double型別的資料賦值給float型別的變數,會丟失精度

3.當算術表示式中的運算資料不同時,運算的結果會是精度更高的那種型別

先乘除模,再加減,如果同級別,就從左到右依次計算.使用小括號可以改變運算的優先順序.如果有小括號,就先算小括號裡的.

char型別的資料也可以參與算術運算

當算術表示式中的運算元是乙個char資料的時候,會先將這個char資料轉換為相對應的ascii碼值,然後再進行運算.

表示式含義

num += a

num = num + a

num -= a

num = num - a

num *= a

num = num * a

num /= a

num = num / a

num %= a

num = num % a

資料型別基礎資料型別

資料型別 基礎型別 除八大基礎型別其他的都是引用型資料型別 引用資料型別 基礎資料型別 整型 byte 佔乙個位元組,範圍 128 127 short 佔兩個位元組,範圍 32768 32767 int 最常用 佔四個位元組,範圍 2147483648 2147483647 long 佔八個位元組 ...

VC資料型別轉換函式

將ascii碼轉化為16進製制數 byte asciitohexchar byte ch else if ch a ch f else if ch a ch f else 將char轉化為16進製制 char chartohexchar char ch else if ch a ch f else ...

Sql Server資料型別轉換函式

sql server資料型別轉換函式是sql中最重要的函式之一,下面就為您介紹sql server資料型別轉換函式的詳細使用,供您參考,希望對您有所幫助。在一般情況下,sql server 會自動完成資料型別的轉換,例如,可以直接將字元資料型別或表示式與datatime 資料型別或表示式比較當表示式...