C#和C++語言使用方面的區別


本人覺得C#是世界上最優美的語言,也可以說是一門傻瓜語言,入門成本低,上手快得到許多人的青睞,但是C#並沒有在行業內得到大家的首肯,反倒是C/C++人才比較緊俏;
本人在學習過程中將C#和C++語言使用方面的一些區別列舉一下,方便理解學習和掌握這兩門語言;如有錯誤歡迎糾正:

1、函數返回值類型:
   
   C#里返回值基本上可以使任何類型,C++則不行,C++的函數返回值類型必須是除了函數和數組類型之外的其他任何類型。

2、switch(參數類型):


   C#參數類型可以是任何類型,C++則必須是整形。

3、數組:


   以定義一個int類型的4行4列的二維數組arr為例:
   C#定義數組格式是: int[][] arr = new int[4][4];
   C++定義數組的格式是:int arr[4][4];

4、定義一個對象;

   C++:兩種用法

  1. ClassA objA;objA.FieldA=valueA;//對象法
  2. ClassA * objA=new ClassA();objA->FieldA=valueA;//指針法

   C#:  ClassA objA=new ClassA();objA.FieldA=valueA;

 

5、函數參數類型為數組時:

  C++:當參數類型為數組時,函數默認當成指針類型來處理,在函數體里改變數組里的值,函數外面也跟着改變;

  C# :當參數類型為數組時,函數默認當成引用類型來處理,在函數體里改變數組里的值,函數外面也跟着改變;

 

6、函數參數類型為對象時:

  C++:當參數類型為對象時,函數在傳參時進行對象的復制,在函數體里改變數組里的值,函數外面不會跟着改變;

  C# :當參數類型為對象時,函數默認當成引用類型來處理,在函數體里改變數組里的值,函數外面也跟着改變;

 

7、局部變量和全局變量的名稱可不可以相同;

C++中是可以相同的,且局部變量會覆蓋全局變量的值;C#中全局變量和局部變量的名稱不可以相同;

 

8、C++中當局部變量被定義時,系統不會對其初始化,您必須自行對其初始化。定義全局變量時,系統會自動對其初始化;而在C#中無論是局部變量還是全局變量系統都會對其初始化;

 

9、關於路徑的寫法:

C#:絕對路徑:D:\\GisMap\\text2.txt;相對路徑:GisMap\\text2.txt,表示exe同級目錄下的Gismap目錄下的text2.txt文件;..\\GisMap\\text2.txt表示exe所在目錄下上一級目錄下的Gismap目錄下的text2.txt;

C++:絕對路徑:D:\\GisMap\\text2.txt;相對路徑:.\GisMap\\text2.txt,表示VC源碼同級目錄下的Gismap目錄下的text2.txt文件;..\\GisMap\\text2.txt表示VC源碼所在目錄下上一級目錄下的Gismap目錄下的text2.txt;

10:待補充...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM