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...