在C 中可以定義char a嗎,他和char a有什麼區別

2021-04-20 19:03:47 字數 3458 閱讀 5884

1樓:匿名使用者

1、如果來

是定義乙個陣列自(元素個數給出),這兩個沒有區別。

2、如上樓所說,如果沒給定【陣列】,是不能直接用這兩個定義。

3、定義不知道元素個數的陣列時,你首先必須得申請個足夠大的記憶體空間,此時,用char a[n]要好,n要足夠大,則在編寫程式前要 vector array(len),這就申請了變長陣列;len*sizeof(型別)(這個一般申請int型別的較為常見)之後,用指標向new分配長度為len*sizeof(型別)記憶體空間。

2樓:醬爆小藍

char array;//不可以

來 必須指明數

自bai組元du素的個數

例如zhi:

int n;

int *array = new int [n];// 動態delete array;

vector _array (n);//向量dao~vector();

3樓:匿名使用者

char a不可以,必須明確個數;

char *a = new char [n];雖然定義了n個,但可以不全用

4樓:和睦空大

用char a=" "這裡是固定的

chara[n]肯定的了

char *a;這個可以輸入很多,不固定

別的不知道了

5樓:匿名使用者

動態記憶體分配

new delete

還可以用自帶的

vector

stack

等模板容器類

c++ 語言中char a="a"; 和char a='a' 有什麼區別

6樓:匿名使用者

char a='a' 是合法的

char a="a' 是不合法的

char型不能為字串,只能為字元

7樓:匿名使用者

「a」表示字串,字串長度等於內容加『\0』的長度,所以是占用兩個位元組記憶體。『a』表示字元,占用乙個位元組記憶體。而乙個字元變數長度永遠為1位元組,所以前者寫法錯誤,應該寫成 char *a = "a"。

8樓:匿名使用者

前面是錯的。「a」為const char *, 「a」= 『a'+ '\0'。

在c++中,char與unsigned char有什麼區別

9樓:兄弟連教育

char 與 unsigned char是兩個不同的資料型別, 取值範圍完全相同,都是二進位制的00000000-11111111, 也就是十六進製制的00-ff. 長度都是1位元組。

所謂取值範圍不同的理解只是因為他們是兩個不同的資料型別,所以轉換成十進位制才會有不同的結果。

正因為他們是兩個不同的資料型別,所以c/c++對他們的處理方法也不同。除了轉換成十進位制會有不同的結果以外,涉及到c/c++程式設計的還有以下注意的地方:

1. 輸出。不光是十進位制輸出,十六進製制的輸出也不一樣。

2. 移位。對 char 執行算術移位,對 unsigned char 執行邏輯移位。

3. 比較。排序。對一級漢字可用strcmp()以unsigned char形式比較按漢語拼音排序,說明成char則會出現比較錯誤。

試看此程式:

int main()

結果是:

x=-128, hex=ffffff80, (x>>1)=-64, hex=ffffffc0.

y=128, hex=80, (y>>1)=64, hex=40.

你好 = c4 e3 ba c3

不只是輸出結果不同, 尤其注意右移位,char 0x80 右移1位是 0xc0, unsigned char 0x80 右移1位是 0x40.

10樓:匿名使用者

char與unsigned char的變數第一bit的含義不同,前者表示負數了,後者表示數值本身。

在做比較("<"或者">")判斷時候,會引起邏輯上的差別。

c語言,char a;和char a[1];有什麼區別

11樓:匿名使用者

char a 表示 定義了乙個變數,名叫a, 它是字元型別(占用記憶體的乙個位元組)

char a[1] 表示 定義了乙個陣列,名叫a, 它是乙個包含乙個字元型別資料的陣列,這個陣列只能存放1個字元型別的資料。

兩者在不接觸指標做函式引數的程式的時候功能是一樣的。

12樓:萢萢

char a是字元,char a[1]是字元陣列。

c語言中char a和 char'a'有什麼區別

char *a和char* a有什麼區別?

13樓:淋漓盡致的

沒有什麼不同,都是定義乙個指向char型的指標但是要注意的是如果你想在一句話裡面2個指標,那麼正確的做法應該是char *a,*b;而不是char* a,b;

後面那個b只是乙個char型變數

所以一般提倡使用第一種,避免糊塗搞錯,當然如果你僅僅在一句話裡面定義乙個變數或者是在定義形參的話,那麼第二種看上去更直接一點

c語言中 定義 char a=1 和char a=「1」和char a=『1』什麼區別?一定採納

14樓:風雷雪電

第一bai

個char a = 1,則a的值du為數值1。

第二個語法zhi

錯誤。第三個char a = '1',則daoa的值為字回符'1',對應的數值請參考ascii碼,答是數值49。此時:

printf("%d",a);//得數值49printf("%c",a);//得字元1

char *a和char* a有什麼區別

15樓:匿名使用者

沒有什麼不同,都

是定義乙個指向char型的指標

但是要注意的是如果你想在一句話裡面2個指標,那麼正確的做法應該是char *a,*b;而不是char* a,b;

後面那個b只是乙個char型變數

所以一般提倡使用第一種,避免糊塗搞錯,當然如果你僅僅在一句話裡面定義乙個變數或者是在定義形參的話,那麼第二種看上去更直接一點

希望對你有幫助

16樓:匿名使用者

作用是一樣的,區別是風格問題。寫**多的人都有自己的風格,特別是大公司,要求風格統一,所以我們看到一段**風格與其他的不同時可以斷定,這段是copy的

17樓:匿名使用者

沒有區別,完全一樣。

18樓:冰戟玉語

c語言裡有char* a這種格式啊,沒見過,我只知道char *a表示定義了乙個字元陣列。

C語言中什麼使函式可以定義成對許多不同資料型別完成同任務

c語言不支援函式過載,因此要想使乙個函式定義成許多不同的資料型別,方法1 使用樓上所說的void強轉法。方法2 使用巨集。注意,無論如何函式名不能定義一樣。比如定義乙個返回最大值的函式,支援int,short,float,double 等型別。首先定義巨集 define com type type ...

c語言中,函式可以巢狀定義嗎,C語言中,函式可以巢狀定義嗎

取決於編譯器.我在ubuntu16.04 用預設gcc,在eclipse中測試可以實現巢狀定義.經測試在函式中定義的函式,在當前作用域可以被呼叫.這樣一來,c語言貌似具有了一些物件導向的特性,使用起來比較方便 定義的時候不能巢狀,但是定義的時候可以遞迴 除了主函式以外都可以,不過在該函式巢狀定義前要...

怎樣在C定義類中定義訪問資料成員的成員函式

一般都是這樣做的啊,成員變數定義成private,提供對外的public函式,要訪問內部的成員變數的話,必須通過這種成員函式,get,set 資料成員和bai成員函式是乙個類的du兩個基本的屬性。成員函zhi數可dao以呼叫資料成員,資料成專員按照不同要求設為屬private public和prot...