C語言的scanf函數函數
1、變量的內存分析blog
(一)字節與地址內存
①. 內存以字節爲單位 每一個字節都有本身的內存地址,根據地址就能夠找到該字節。整個內存至關於一整個酒店,而酒店以房間爲單位,在這裏每一個房間就至關因而每一個字節,地址就是房號,根據房號能夠找到房間(根據地址也能夠找到內存中的字節)。相鄰房間的房號是連續的,相鄰字節的地址也是連續的。計算機中一般以十六進制表示地址。編譯器
②. 不一樣類型佔用的字節是不同的,數據越大則佔用的字節數越多。如在64位編譯器下,int類型佔據4個字節,char類型佔據1個字節。io
(二)變量的存儲編譯
重點:內存尋址由大到小,優先分配內存地址較大的字節給變量,因此通常而言越先定義的變量,其內存地址越大。class
假設:int a=1;int b=2;下面是對其進行的模擬內存分析。變量
&是取址運算符,用來獲取地址。程序
%p這個佔位符用來輸出地址。im
未經初始化的變量,它的值是不肯定的,而C語言是弱類型的語言,若是不對一個變量進行初始化並不會報錯,因此提醒變量在使用以前必定要進行初始化。
2、Scanf函數
(一)基本介紹
Scanf是系統自帶的函數,聲明包含在stdio.h文件中,所以要是有該函數,必須加載#include<stdio.h>頭文件。當執行到scanf函數時,程序就暫停等待用戶輸入,該函數只接受變量的地址,格式爲&變量名。是一個阻塞式的函數,2用戶輸入完畢後,則將值賦值給變量,至此函數調用完畢。敲回車鍵告知計算機鍵入完畢。
(二)使用注意
①. 使用scanf函數輸入一個字符變量。Char a; scanf(「%c」,&a);
②. 同時輸入多個值。Scanf(「%d,%d」,&num1,num2);
③. Scanf(「%d\n」,&a);//在內部不能使用\n轉義字符,不然沒完沒了。
注意:在這裏兩個佔位符之間是,隔開,則要求在輸入時也使用逗號隔開如輸入1,2。此時爲num1=1,num2=2。若內部爲「%d#%d」則輸入1#2。若內部爲「%dy%d」,則輸入1y2。若是中間的字符是空格,則在輸入時能夠用空格隔開,也能夠敲tab鍵或者是回車鍵做爲分隔符隔開,後二者能夠看作是由空格組成的。