程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++編程語言真的這麼適用嗎?

C++編程語言真的這麼適用嗎?

編輯:C++入門知識

其實C#的語法與C++非常相似,有些變化引起的錯誤卻很嚴重,本文就對於大多數用戶頭疼的C++編程語言進行詳細的剖析與介紹,然而最近幾年,C++環境的狀況真的改善了嗎?

C++編程語言的詞法及詞法規則

1、C++編程語言的字符集

字符是一些可以區分的最小符號。C++的字符集由大小寫英文字母(a-z和A-Z)、數據字符(0-9)、特殊字符(空格,!,#,%,^,&,*,_,<,>,?,\,,)組成。

2、單詞及詞法規則

單詞又稱詞法記號,它是由若干個字符組成的具有一定意義的最小詞法單元。C++共有6種單詞,分別是:標識符、關鍵字、運算符、分隔符、常量、注釋符,在編碼時要特別注意這些單詞的詞法規則。

要注意的是C++中的空白符:C++編程語言中經常使用空白符,實際上,空白符不是一個字符,它是空格符、換行符和水平制表符的統稱。注意,空白符不等於空格符,只是空白符包含空格符。

還有一個空字符,要把它與空白符分開。空字符是指ASCII碼值為0的那個字符。空字符在C++中有特殊用途,用它來作為字符串的結束符。存放在內存中的字符串常量都在最後有一個結束符,即用空字符,它用轉義序列方法表示為’\0’。

C++程序結構的基本組成部分

1 預處理命令,C++提供了三類預處理命令:宏定義命令、文件包含命令、條件編譯命令。

2 輸入輸出,C++程序中總是少不了輸入和輸出的語句,實現與程序內部的信息交流。特別是屏幕輸出的功能,幾乎每個程序都要用到,使用它把計算機的結果顯示在屏幕上。

3 函數,C++的程序是由若干個文件組成的,每個文件又是由若干個函數組成,因此,可以認為C++的程序就是函數串,即由若干個函數組成,函數與函數之間是相對的,並且是並行的,函數之間可以調用。在組成一個程序的若干個函中,必須有一個main()。

4 語句,語句是組成程序的基本單元。函數是由若干條語句組成的。但是,空函數是沒有語句的。語句是由單詞組成,單詞間用空格符分隔,C++程序中的語句又是以以分號結束。語句除了有表達式語句和空語句之外,還有復合語句、分支語句、循環語句和轉向語句等若干類。

5 變量,多數程序都需要說明和使用變量。廣義講,對象包含了變量,即將變量也稱為一種對象,狹義講,將對象看作是類的實例,對象是指某個類的對象。

6 其他,除了以上講述的5個部分以外,還有其他組成部分。例如,符號常量和注釋信息也是程序的一部分。C++中都盡量把常量定義為符號常量,在C++的程序中出現的是符號常量,該符號常量代表著某個確定的常量值。

  • 如何進行Visual C++界面編程
  • 對於C++開發環境進行講析
  • 淺析不同的C++編譯器之間的不同性能
  • 如何進行C++環境編譯
  • 如何准確無誤的進行VC++開發?

C++程序的書寫格式

在編程時應該注意C++編程語言的書寫格式,基本原則是:一行一般寫一條語句。短語句可以一行寫多個。長語句可以一條寫多行。分行原則是不能將一個單詞分開。用雙引號引用的一個字符串也最好不分開,如果一定要分開,有的編譯系統要求在行尾加續行符(“\”)

C++程序的實現

C++源程序的實現與其他高級語言源程序實現的原理是一樣的。一般都要經過編輯、編譯、運行。其中最要的是編譯過程,C++是以編譯方式實現的高級語言。C++程序的實現,必須要使用某種C++編程語言的編譯器對程序進行編譯。

編譯器的功能是將程序的源代碼轉換成為機器代碼的形式,稱為目標代碼;然後,再使目標代碼進行連接,生成可執行文件。該過程可分為三個子過程:預處理過程、編譯過程(詞法分析、語法分析、符號表、錯誤處理程序、生成目標代碼)、連接過程。

首先重復一句Bjarne的話:“我們的系統已經是極度復雜的了,為了避開C++的復雜性而干脆不用C++Linus的做法),無異於因噎廢食。”在所有可用C和C++的領域,C++都是比C更好的語言。當我說“更好的”時候,我說的是C++編程語言擁有比C更安全的類型檢查、更好的抽象機制、更優秀的庫。

當然,凡事都有例外,如果你做的項目1)不大。2)編碼中用不到什麼抽象機制,甚至ADT抽象數據類型,例如std::complex這種不含多態和繼承的)也用不到,RAII也用不到,異常也用不到。3)你連基礎庫如,簡化資源管理的智能指針、智能容器)都用不著。

那麼也許你用C的確沒問題;所以如果你的情況如此,不用和我爭論,因為我無法反駁你。我們這裡說的領域大致是Bjarne在“C++應用列表”裡面列出來的那些地方。 底線是:如果把C++中的諸多不必要的復雜性去掉,留下那些本質的,重要的語言特性,簡化語言模型,消除歷史包袱。

即便是C++的反對者也許也很難找到理由說“我還是不用C++”。在我看來,一個真正從實踐意義上理性反對使用C++的人只有一個理由:C++的復雜性帶來的混亂抵消乃至超過了C++的抽象機制和庫在他的特定項目中)帶來的好處。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved