回覆列表
  • 1 # 使用者335326747796

    C中的字串字面量的型別是char [N],即大小為N的char陣列,N為字面量包含的char數量(含末尾\0),可以賦值給char *,但是修改其內容是未定義行為

    C++中稍微做了修改,型別改為const char [N],修改const修飾的區域自然也是未定義行為,原則上這隻能賦值給const char *,不過為了相容,一般編譯器對於你將其賦值給char *的行為只做一個warning

    無論C還是C++,個人推薦字串字面量都賦值給const char *

  • 2 # 好開心影片

    如果是使用oracle的話儲存字元資料的話就使用varchar2吧,這個是根據你儲存的資料自動縮減長度的,比較節省空間。char: 使用指定長度的固定長度表示的字串;比如char(8),則資料庫會使用固定的8個位元組來儲存資料,不足8為的字串在其後補空字元;varchar 在oracle中varchar跟char是一個型別;sqlserver中varchar相當於oracle中的varchar2varchar2 用實際字元數+2個位元組來儲存的變長字串;比如一個欄位定義為varchar(10),而實際儲存的內容為‘A’,則資料庫會用3個位元組來儲存該字串,其中前兩個位元組用來儲存字元的長度; 在資料庫中的欄位,由於一個欄位大小不能超過一個block的長度,所以varchar和char都是最大為8000個位元組,由於可能會儲存漢字,也就是一個字元用2個位元組來儲存,所以欄位中最大定義為varchar(4000),而在plsql中,這個大小的限制變為32000左右,這是因為表示其大小的位元組只有兩個。

  • 中秋節和大豐收的關聯?
  • 有誰能告訴我點超感動的國產愛情悲劇電影影片?