能不能把字元常量或字元變數賦值給int型別的變數 (書上答案是不能我自己試了試可以)

2021-05-25 15:45:12 字數 2058 閱讀 7662

1樓:

可以,不過要強制型別轉換。

2樓:匿名使用者

如果該字元是由數字組成 e.g. "1" > 1是可以強制轉換.

而"a"的字元 , 理所當然是不能..

除非轉換為字元**(charcode)

"a" > (ascii) 10

在vc++中常量和變數有什麼區別?

3樓:_鈊_煩_薏亂

c++資料型別之一:常量和變數

一、文字常量:

常量之所以稱為「文字常量」,其中「文字」是指我們只能以它的值的形式指代它,「常量」是指它的值是不可變的。同時注意一點:文字常量是不可定址的(即我們的程式中不可能出現獲取所謂常量20的儲存地址&20這樣的表示式),雖然常量也是儲存在記憶體的某個地方,但是我們沒有辦法訪問常量的地址的。

常量是有型別的:

1、 字元型char:一個位元組表示,通常表示單個字元或小整數,字元型常量用一對單引號『 』夾著一個字元表示。

(1)可列印字元常量表示:

『a』 『2』 『,』 『 』

字元常量在記憶體中的儲存格式依賴於ascп碼錶的。

(2)不可列印字元常量,通過斜槓「\」表示:

『\n』 換行符 『\\』 反斜槓 『\t』 水平製表符 『\0』 空(null)字元

2、 整型int:一個機器字長度的整數值。

短整型short:半個機器字長度的整數值。

長整型long:一個或兩個機器字長度的整數值。

在32位機器中,int和long通常相同。

(1)上面提到的char字元型,也可看作長度為一個位元組的字元型整數。

通過下面這個小例子,可以看到char型資料,不同初始化方法,記憶體格式也是不同的。

char a=』1』;

cout

測試題:

1、下列定義哪些是非法的請改正之

(a) int car = 1024, auto = 2048;

(b) int ival = ival;//沒有什麼實際意義

(c) int ival( int() );

(d) double salary = wage = 9999.99;//wage使用前未曾先定義,在這條語句前加上一條語句double wage=9999.99就沒問題了

(e) cin >> int input_value;//使用cin時,不能同時定義

2、說明下列 student 和 name 兩個例項的區別

(a) extern string name;

string name( "exercise 3.5a" );

(b) extern vectorstudents;

vectorstudents;

第一行是name的宣告,告訴編譯器name代表的型別為string,未進行記憶體分配

第二行是name的定義,告訴編譯器name代表的型別為string,並進行記憶體分配。

3、下列名字哪些是非法的請改正之

(a) int double = 3.14159; //無效 使用了保留字

(b) (b) vector< int > _;

(c) string namespace; //無效,使用了保留字

(d) (d) string catch-22;//內含一個無效的-

(e) char 1_or_2 = '1';//名稱不能以數字開頭

(f) float float = 3.14f;

4、下面的全域性物件定義和區域性物件定義有什麼區別(如果你認為有區別的話)

string global_class;

int global_int;

int main()

兩個string物件都是被其預設的建構函式初始化,另外全域性變數global_int被初始化為0,而區域性變數local_int不會初始化,是任意值。但是使用vc.net除錯時,輸出沒有初始化區域性變數會編譯失敗,提示使用沒有初始化的變數。

但輸出沒有初始化的全域性變數就沒有問題,因為系統幫助初始化為0了。

不能把字串常量賦予字元變數這句話怎麼理解,不是

程式的儲存區分為4塊 1 全域性靜態區 儲存全域性變數 靜態變數 2 字元常量版區 存放字串常量 3 棧權區 區域性變數 4 堆區 動態分配的記憶體 字元變數儲存的內容不是字串常量,可以被修改 字串常量是不能修改的 巨集定義的不是變數,只是一個標記,在程式預編譯的時候就是進行簡單的替換操作 記得采納...

mysql中字串的拼接,能不能不使用concat函式

concat ws 函式,表示concat with separator,即有分隔符的字串連線 如連線後以逗號分隔 mysql select concat ws 11 22 33 concat ws 11 22 33 11,22,33 1 row in set 0.00 sec 和concat不同的...

格式化能不能把win10變成,格式化能不能把win10變成win

1.準備好u盤啟動盤 帶win8pe 在盤中放上需要的win7映象檔案。啟動電腦本選擇u盤啟動。方法1.開機按esc鍵選擇。開機長按鍵盤上的 f12 f8 f11 不同主機板可能不一樣它會彈出啟動項選擇。根據需要進行選擇就可以了可以選擇u盤或者光碟啟動 選擇完,直接u盤或光碟啟動 方法2 bios設...