C語言的scanf函數中,從鍵盤輸入的值應該是賦給指定的地址。所以變量必須使用取地址符號進行賦值。
目前創(chuàng)新互聯公司已為上千余家的企業(yè)提供了網站建設、域名、網絡空間、網站改版維護、企業(yè)網站設計、比如網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
如果書寫錯誤遺漏取地址符號,系統(tǒng)會自動將變量的值轉換為地址值后,將值賦給指定的地址,這就導致出現非法訪問,輕則程序出錯,重則軟件崩潰閃退。
以下代碼為例:
int a;
a=0x300;
scanf("%d",a);
執(zhí)行后,因a的值為0x300,系統(tǒng)會將用戶輸入的值賦給0x00000300這個內存,如果幸運沒有造成軟件異常的話,會導致這個內存中的值被修改為用戶輸入的值。如果這個位置是數據還好,如果是程序段的話會使得運行到這個位置后出現莫名的異常。
執(zhí)行后,因為a的值未被修改,所以a本身仍然是0x300.
C語言中,本身沒有bool(布爾型變量)。
bool是布爾型變量,也就是邏輯型變量的定義符,類似于float,double等,只不過float定義浮點型,double定義雙精度浮點型。
布爾型變量的值只有?真?(true)?和假?(false)。
布爾型變量可用于邏輯表達式,也就是“或”“與”“非”之類的邏輯運算和大于小于之類的關系運算。
建議:最好別用bool,bool變量可用int代替。
擴展資料
BOOL和bool的區(qū)別:
1、類型不同
BOOL為int型
bool為布爾型
2、長度不同
bool只有一個字節(jié)
BOOL長度視實際環(huán)境來定,一般可認為是4個字節(jié)
3、取值不同
bool取值false和true,是0和1的區(qū)別
如果數個bool對象列在一起,可能會各占一個bit,這取決于編譯器。
BOOL是微軟定義的typedef?int?BOOL(在windef.h中)。與bool不同,它是一個三值邏輯,TRUE/FALSE/ERROR,返回值為大于0的整數時為TRUE,返回值為0時候,為FALSE,返回值為-1時為ERROR。
參考資料來源:
百度百科——BOOL
scanf函數是c語言中輸入函數的一種,將用戶從鍵盤輸入的文本轉換為對應的值存儲起來,下面請看詳細的教程。
1、首先在主函數中定義一個變量age,類型為int類型。
2、接著用printf函數給出相應的提示—“please?enter?your?age”。
3、使用scanf函數,將用戶輸入的內容存儲到age這個變量,注意在變量要加上,如果是字符數組則不用加。
4、這時將這個變量的值打印出來,也就是用戶輸入的內容打印出來。
5、最后右鍵單擊,在彈出的菜單中點擊“run code”。查看運行結果,就完成了。
動態(tài)鏈接庫DLL的加載:隱式加載(載入時加載)和顯式加載(運行時加載)
OutOfMemory.CN技術專欄-?C語言-?C語言入門教程-?C語言輸出函數(printf)和輸入函數(scanf)
上一篇:C語言基本概念下一篇:C語言程序的結構特點
C語言輸出函數(printf)和輸入函數(scanf)
前面的幾個例子都用到了輸出函數printf,例1-3還用到了輸入函數scanf,這里我們先簡單介紹一下它們的格式,以便后面使用。scanf和printf這兩個函數分別稱為格式輸入函數和格式輸出函數。其
教程
前面的幾個例子都用到了輸出函數printf,例1-3還用到了輸入函數scanf,這里我們先簡單介紹一下它們的格式,以便后面使用。
scanf和 printf這兩個函數分別稱為格式輸入函數和格式輸出函數。其意義是按指定的格式輸入輸出值。因此,這兩個函數在括號中的參數都由以下兩部分組成:
1) 格式控制串:格式控制串是一個字符串,必須用雙引號括起來,它表示了輸入輸出量的數據類型。
在printf函數中可以在格式控制串內出現非格式控制字符,這時在顯示屏幕上會顯示源字符串。各種類型的格式表示方式請參考:C語言格式輸出函數printf()詳解。
在scanf函數中也可以在格式控制串內出現非格式控制符,這時會將輸入的數據以該字符為分隔。各種類型的格式表示方式請參考:C語言scanf()函數。
1、main函數可以不帶參數,也可以帶參數,這個參數可以認為是 main函數的形式參數。
C語言規(guī)定main函數的參數只能有兩個,還規(guī)定argc(第一個形參)必須是整型變量,argv( 第二個形參)必須是指向字符串的指針數組。加上形參說明后,main函數的函數頭應寫為:
int main (int argc,char *argv[])
2、由于main函數不能被其它函數調用,因此不可能在程序內部取得實際值。實際上,main函數的參數值是從操作系統(tǒng)命令行上獲得的。當要運行一個可執(zhí)行文件時,在DOS提示符下鍵入文件名,再輸入實際參數即可把這些實參傳送到main的形參中去。
DOS提示符下命令行的一般形式為:
C:\可執(zhí)行文件名 參數 參數……;
變量就是值 如 #include stdio.hvoid main(){
int a,b,c;scanf("%d %d",a,b);//在下面加一句a=9這樣a值就變成9了不管你輸入什么a總是9c=a+b;printf("%d",c);}這里啊,a ,b,c都是變量可以被改變 常量不能被改變。。。。如上: