C語言中定義變量位置

C標準的問題
C89規定,在任何執行語句之前,在塊的開頭聲明所有局部變量。
即應該如下:定義變量只能在最開始,scanf等執行語句之前

int N = 0;double sum = 0;scanf("%d",&N);

在C99以及C++中則沒有這個限制,即在首次使用之前,可在塊的任何位置都可以聲明變量。
如下:

int N = 0;scanf("%d",&N);double sum = 0;

另一方面,編譯器不同也不同,gcc編譯器有很多擴展的功能,可完美支持C99標準。

關于變量的定義:
以花括號{}給包圍起來的代碼段稱為block,只要在block開始的地方定義變量就不會錯;
變量作用域和生存期:
該變量的作用域和生存期(除了static限定)只在該block里,且該變量可以屏蔽block外的變量;
譬如在block外已經有一個變量名為a = 1的int變量,在block里允許定義一個同名的變量int a = 2,但在block里試著用printf打印的話,會發現printf("%d", a)結果是2.這就叫做屏蔽外面的變量!

本文為摘抄筆記,原創請查看
https://wenku.baidu.com/view/d3adc6d03186bceb19e8bb6a.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374891.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374891.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374891.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java中的低GC:使用原語而不是包裝器

總覽 有兩個很好的理由在可能的地方使用原語而不是包裝器。 明晰。 通過使用原語,您可以清楚地知道null值是不合適的。 性能。 使用原語通常更快。 清晰度通常比性能更重要,并且是使用它們的最佳理由。 但是,本文討論了使用包裝程序對性能…

C# 連接Oracle數據庫以及一些簡單的操作

拖了很久今天終于在博客園寫了自己第一篇隨筆: 話不多說,我們直接進入正題: 1.連接數據庫 using (OracleConnection conn new OracleConnection("data source192.168.97.60/orcl;User Idabc;Passwordabc;")) { …

markdownb編輯器

這是H1 這是H2 這是H3 這是一個標題。 這是第一行列表項。這是第二行列表項。給出一些例子代碼: return shell_exec("echo $input | $markdown_script"); 轉載于:https://www.cnblogs.com/xcl461330197/p/4605163.html

Java Secret:使用枚舉構建狀態機

總覽 Java中的枚舉比許多其他語言更強大,這可能導致令人驚訝的用途。 在本文中,我概述了Java 枚舉的一些單獨功能,并將它們組合在一起形成一個狀態機。 單例和實用程序類的枚舉 您可以非常簡單地將枚舉用作Singleton或Utility。 enum Si…

數組部分筆記

對于數組的初始化需要注意以下幾點: 可以只給部分元素賦值。當{ }中值的個數少于元素個數時,只給前面部分元素賦值。例如: int a[10]{12, 19, 22 , 993, 344};表示只給 a[0]~a[4] 5個元素賦值,而后面 5 個元素自動初始化為 0。 …

指向函數的指針

指向函數的指針變量的一般形式為:數據類型 (*指針變量名)(函數參數表列);如: int (*p)(int ,int );1、int (*p)(int ,int );表示定義一個指向函數的指針變量p,它不是固定只能指向…

核心Java面試答案不正確

總覽 在Internet上,Java面試問題和答案從一個網站復制到另一個網站。 這可能意味著錯誤或過時的答案可能永遠不會得到糾正。 這是一些不太正確或已經過時的問題和答案。 即是Java 5.0之前的版本。 每個提供的問題后都有兩個部分。 斜體的第一部分指示答案不完整/錯…

138.括號序列(區間型DP)

3657 括號序列 時間限制: 1 s空間限制: 256000 KB題目等級 : 黃金 Gold題解查看運行結果題目描述 Description我們用以下規則定義一個合法的括號序列: (1)空序列是合法的 (2)假如S是一個合法的序列,則 (S) …

C# 執行批處理文件(*.bat)的方法代碼

代碼如下:static void Main(string[] args){Process proc null;try{ string targetDir string.Format("D:\adapters\setup");//this is where mybatch.bat liesproc new Process();proc.StartInfo.WorkingDirectory targetDir;proc.StartInfo.Fil…

C語言空格怎么表示

1.直接敲空格就行,或者使用ASCII碼值賦值為32。 空格沒有轉義字符。 printf("12%c45 58",32);輸出 12 45 582.合法轉義字符如下:\a 響鈴(BEL) 、\b 退格(BS)、\f 換頁(FF)、\n 換行(LF)、\r 回車(CR)、\t 水平制表(HT)、\v 垂直制表(VT) 0、…

Tomcat中的零停機部署(和回滾); 演練和清單

親愛的大家, 如果您認為Tomcat不能再進步,那您就錯了。 Tomcat 7引入了所謂的并行部署 。 這是由SpringSource / VMWare貢獻的。 簡而言之,并行部署是一種能夠并行部署一個以上版本的Web應用程序的功能,使所有版本都可以在完全相…

javaweb 學習資源

http://jinnianshilongnian.iteye.com/category/231099轉載于:https://www.cnblogs.com/sishahu/p/5368018.html

HDU 1863 暢通工程(最小生成樹,prim)

題意: 給出圖的邊和點數,要求最小生成樹的代價,注:有些點之間是不可達的,也就是可能有多個連通圖。比如4個點,2條邊:1-2,3-4。 思路: 如果不能連通所有的點,就輸出‘?’…

2000年不算在21世紀

練習3-5 輸出閏年 (15 分) 輸出21世紀中截止某個年份以來的所有閏年年份。注意&#xff1a;閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。 想當然地以為21世紀是2000~2099&#xff0c;當然沒有通過 if(N > 2000&&N < 2099){for(int i …

使用迭代器時如何避免ConcurrentModificationException

Java Collection類是快速失敗的&#xff0c;這意味著如果在使用迭代器遍歷某個線程的同時更改了Collection&#xff0c;則iterator.next&#xff08;&#xff09;將拋出ConcurrentModificationException 。 在多線程以及單線程環境下都可能出現這種情況。 讓我們通過以下示例探…

Sublime Text 3實用快捷鍵大全

下面是我通過網上教程和文本資料學習sublime Text3時收集的一些實用功能和常用快捷鍵&#xff0c;現在分享出來&#xff0c;如果還有其它的好用的功能可以在下面留言&#xff0c;以便互相學習和交流&#xff0c;謝謝&#xff01;。 選擇類 CtrlD 選中光標所占的文本&#xff0c…

Tomcat中配置JNDI數據源

準備工作&#xff1a; Tomcat版本&#xff1a;tomcat6.0以上 下例中均使用MySQL數據庫 將對應數據源的jar包和MySQL的驅動包拷貝至tomcat的lib文件夾下 一、全局數據源 1步驟一&#xff1a;配置 在tomcat下的conf/server.xml的GlobalNamingResources節點標簽中增加如下配置&…

練習3-8 查詢水果價格 (15 分)

練習3-8 查詢水果價格 (15 分) 給定四種水果&#xff0c;分別是蘋果&#xff08;apple&#xff09;、梨&#xff08;pear&#xff09;、桔子&#xff08;orange&#xff09;、葡萄&#xff08;grape&#xff09;&#xff0c;單價分別對應為3.00元/公斤、2.50元/公斤、4.10元/公…

JavaFX 2.0 beta示例應用程序和思考

我有一段時間回過頭來玩JavaFX&#xff0c;并且在使用該語言方面有好有壞的經驗。 隨著JavaFX 2.0 beta的發布&#xff0c;我想嘗試一下。 在這里&#xff0c;我開發了一個簡單的地址解析應用程序&#xff0c;該應用程序將使用Google地址編碼API來獲取地址并提供該位置的緯度-經…

$Android自定義控件在不同狀態下的屬性

在寫代碼的時候&#xff0c;有時候需要控件在不同狀態下顯示不同的外觀&#xff0c;比如在按鈕按下的時候要變顏色&#xff0c;EditText獲取焦點時候邊框要變顏色等。那么下面就來梳理一下這些是怎么實現的。 &#xff08;一&#xff09;按鈕按下時候變顏色 1、在項目的drawabl…