5、黑馬程序員-C語言的scanf函數

------<a href="http://www.itheima.com" target="blank">Java培訓、Android培訓、iOS培訓、.Net培訓</a>、期待與您交流! -------

一、變量的內存分析

(一)字節與地址

①. 內存以字節爲單位 ,每個字節都有自己的內存地址,根據地址就可以找到該字節。整個內存相當於一整個酒店,而酒店以房間爲單位,在這裏每個房間就相當於是每個字節,地址就是房號,根據房號可以找到房間(根據地址也可以找到內存中的字節)。相鄰房間的房號是連續的,相鄰字節的地址也是連續的。計算機中通常以十六進制表示地址。

②. 不同類型佔用的字節是不一樣的,數據越大則佔用的字節數越多。如在64位編譯器下,int類型佔據4個字節,char類型佔據1個字節。

(二)變量的存儲

重點:內存尋址由大到小,優先分配內存地址較大的字節給變量,所以一般而言越先定義的變量,其內存地址越大。

假設:int a=1;int b=2;下面是對其進行的模擬內存分析。

 

&是取址運算符,用來獲取地址。

%p這個佔位符用來輸出地址。

未經初始化的變量,它的值是不確定的,而C語言是弱類型的語言,如果不對一個變量進行初始化並不會報錯,所以提醒變量在使用之前一定要進行初始化。

 

二、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鍵或者是回車鍵作爲分隔符隔開,後兩者可以看做是由空格組成的。


------<a href="http://www.itheima.com" target="blank">Java培訓、Android培訓、iOS培訓、.Net培訓</a>、期待與您交流! -------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章