程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#和C++中char類型的區別

C#和C++中char類型的區別

編輯:關於C#

對於char,這個字符類型。我們一般都認為就是一個字節。今天在仔細比較發現,C#的char和C++的char是有區別的。

1.首先來看C#中char占多大空間

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
 class Program
 {
  static void Main(string[] args)
   {
    Console.WriteLine(sizeof(char));
    Console.Read();
   }
 }
}

居然是返回2.也就是說兩個字節。

2. 在C++中呢?

#include <iostream>
using namespace std;
int main()
{
 cout << sizeof(char)<<endl;
 return 0;
}

這裡看到的結果是顯示為1個字節

但是同時,我又想起來,C++裡面還有另外一個char類型,也就是所謂的wchar_t,通常用來表示unicode char,它的空間是多少呢?

#include <iostream>
using namespace std;
int main()
{
 cout << sizeof(wchar_t)<<endl;
 return 0;
}

3. 那麼,是不是說C#中的char都是表示unicode字符的呢?

沒錯,就是這樣。  如此才能解釋得通嘛

http://msdn.microsoft.com/zh-cn/library/x9h8tsay.aspx

char 關鍵字用於聲明下表所示范圍內的 Unicode 字符。Unicode 字符是 16 位字符,用於表示世界上大多數已知的書面語言。

4. 題外話:SQL Server 中的字符類型

我還想到,在SQL Server的類型系統中有下面幾個字符類型,大家也要有所比較

定長 char

定長(unicode) nchar

變長 varchar

變長(unicode) nvarchar

也就是說,在SQL Server中也是明確地區分unicode和非unicode的

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