1樓:匿名使用者
你好,數字就是需要佔的字元數的大小,通常在需要的存放的數的字元再+1,漢字通常佔兩個字元,英文字母佔一個字元,還要+1個字元存放零字元。
例如啊: char [11]="我是特種兵";
char [6]="china";
2樓:匿名使用者
char a="china";是定義了一個陣列,內如有數字代表陣列元素個數。char* a=null是定義了一個指標。具體區別你查一下陣列和指標的區別就可以了,不是一句話的事,好好看吧。
3樓:聽不清啊
char a="china";這裡填數字幾代表陣列a的長度,即最多可存放幾個字元。它應當比字串的最大長度大1.比如說,char a="china";這裡內至少要填6。
char a是定義了一個陣列a(a是一個指向字元的常量指標),同時初始化了字串,讓系統自動確定一個最小、夠用的長度。
char* a只是定義了一個可以存放一個指向字元的變數指標,可以更改a的值。但是卻沒有可以直接存放字元的空間。要存放字元,必須先讓a指向一個可用的空間(已定義的變數,或是用new新申請儲存空間)。
c語言中char *a[ ]什麼意思,他和char (*)a[ ]有什麼什麼區別?
4樓:匿名使用者
char *a表示的是陣列a是一個指向char的指標型別陣列,相當於a裡面的每一個元素都實際值都是一個指向字串的指標(即儲存某個字串的首地址)
後面這個你應該要問的是char (*a)吧,不然的話就和第一個一樣了
char (*a) [n]表示的是指向一個元素為n的字串陣列的指標,說白了就是一個陣列指標(指向陣列的指標)。這個和函式指標有點像 int (*p) (int,int),表示指向返回值為int,並且含有2個int變數的函式
5樓:凌亂心扉
兩者區別如下:
一、”讀“”寫“能力
char*a="abcd";此時"abcd"存放在常量區。通過指標只可以訪問字串常量,而不可以改變它。
而char a[30]="abcd";此時"abcd"存放在棧。可以通過指標去訪問和修改陣列內容。
二、賦值時刻
char*a="abcd";是在編譯時就確定了(因為為常量)。
char a[30]="abcd";是在執行時確定
三、指向地址所儲存的值不同。
對於char**p1,*p1的型別為char*型,而**p1的型別才是char型。
對於char*類指標p2,*p2就是char型。
char*a="abcd";存於靜態儲存區。在棧上的陣列比指標所指向字串快。慢
char a[30]="abcd";存於棧上。快。
四、記憶體分配方式
記憶體分配有三種:堆區和棧區、靜態儲存區。功能不同;使用方式也不同。
1、棧:就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數、函式引數等。
2、堆:就是那些由new或malloc分配的記憶體塊,在不適用時,要手動用delete或free來釋放記憶體區域。
3、靜態儲存區:記憶體在程式編譯的時候就已經分配好,這塊記憶體在程式的整個執行期間都存在。它主要存放靜態資料、全域性資料和常量。
但是,良好的程式設計習慣是:如果某動態記憶體不再使用,需要將其釋放掉,並立即將指標置位null,防止產生野指標。
6樓:匿名使用者
char *a是錯誤的,只能定義char *a[任意整數];
或者char *a[4或者其他整數或者不填]=“abc”;
或者char *a[3或者其他整數或者不填]=;
或者char *a[2或者其他整數或者不填]=;
或者char k,j,l,*a[3]=;
char (*)a也是錯誤的,只能定義為(char *)a[任意整數];
首先說下第一個,以char *a[4];為例, 這語句是定義一個指標型陣列,他的元素都是指標。指標是可以直接來指向一個字串的,用法是char *p="good。指標型陣列中每個元素都是指標,則每個元素都可以去定義一個字串或者是定義一個變數;所以如果有一個a[4][4]=; 現在就可以用char *p[4]=; 這樣的好處是節約了空間,一個陣列被定義下來後,記憶體就被分配了,如果這個陣列在後面的語句中不再使用了,那它就佔著空間,使得原始檔很大,如果使用指標陣列,就很容易解決這個問題了,因為只要讓指標陣列在指向其他的字串或者其他的一些變數 ,這樣原來的空間就被釋放了
(char *)a[4]的意思是將指標型陣列a中的元素a[4]強行轉化為char型別
7樓:狂盜一枝梅
char *a一般用於函式中形參的宣告,特別只用於一維陣列;char(*)a不明白什麼意思,難不成是將a陣列強制轉換成字元型???只是猜測,不要多想呵。
8樓:楊武威
char *a[ ]相當於char** a,是指標的指標;
char (*)a[ ] 是char型別指標陣列;
(純屬個人理解,僅供參考)
9樓:小小的
含義是一樣的。其實陣列也是指標。都是宣告瞭a這個char*型別陣列。雖然有語法錯誤,但是意思是那樣的。
10樓:匿名使用者
char* a:a首先是個陣列,陣列中的每個元素是char*型別的,也就是每個元素是一個指向char型別的指標,至於char(*)a,圓括號一般是用作強制型別轉換的,這種寫法沒有見過,編譯器應該分析不出這個語法,會報錯
11樓:快來見本大人
char *a[ ] 表示一個陣列a,陣列裡的元素型別是char *
char (*)a[ ] 表示一個指標變數a,指向的變數型別是 char 的陣列
char *a[n] 和char (*a)[n]有什麼區別?
12樓:哇哎西西
一、”讀“”寫“能力
char*a="abcd";此時"abcd"存放在常量區。通過指標只可以訪問字串常量,而不可以改變它。
而char a[30]="abcd";此時"abcd"存放在棧。可以通過指標去訪問和修改陣列內容。
二、賦值時刻
char*a="abcd";是在編譯時就確定了(因為為常量)。
char a[30]="abcd";是在執行時確定
三、指向地址所儲存的值不同。
對於char**p1,*p1的型別為char*型,而**p1的型別才是char型。
對於char*類指標p2,*p2就是char型。
char*a="abcd";存於靜態儲存區。在棧上的陣列比指標所指向字串快,慢。
char a[30]="abcd";存於棧上,快。
13樓:匿名使用者
由於[ ]比*優先順序要高,因此a先與[n]結合,形成a[n]形式,這顯然是陣列形式,它有n個元素。然後和*結合,*表示此陣列時指標型別的,每個陣列元素都指向一個char型的變數。
*a[n] (*a)是一個指標有n個元素,每個元素為char型。也就是a指向的物件是有4個char元素的陣列,即a是指向一維陣列的指標。因記住,此時a只能指向一個包含n個元素的一維陣列,a的值就是一維陣列的起始地址
14樓:匿名使用者
兩者的區別是char *a定義了一個指標數字,即a的每個元素都是字元陣列,也就是a是個二維陣列;而char(*a)定義的是指向*[n]的指標,也就是指向二位字元陣列的指標。
char *a;a="abc"與char*a;*a="abc"char *a="abc"有什麼區別嗎?
15樓:
1,char*a;*a="abc" 是錯誤的, *a是字元,不是字串。
2,另外兩句完全一樣。雖然編譯能通過,但是你這句本身就是錯誤的:字串定義應該是 const char *a = "abc"; 因為字串儲存在不可讀記憶體中,所以c語言中字串的的返回值是 const char*.
3, 如果要得到能讀寫的字串請使用字元陣列: char a = "abc"
16樓:
char *a;
a = "abc";
和char *a;
*a = "abc";
作用相同 就是將字串陣列的首地址給char 指標變數a(假設16位地址值,要被截斷成8位
char *a =“abc” 可以看作是 char a="abc";
17樓:太叔青芬俞環
不行p1沒有初始化(也就是常說的野指標),它指向的空間是未知的先初始化:
p1=char(**)malloc(10*sizeof(char*));
//分配10個char*的空間
p1[0]=(char*)malloc(sizeof(a));
//給p1[0]分配合適空間
strcpy(p1[0],p)
//現在可以了
c語言,char a;和char a[1];有什麼區別
18樓:匿名使用者
char a 表示 定義了一個變數,名叫a, 它是字元型別(佔用記憶體的一個位元組)
char a[1] 表示 定義了一個陣列,名叫a, 它是一個包含一個字元型別資料的陣列,這個陣列只能存放1個字元型別的資料。
兩者在不接觸指標做函式引數的程式的時候功能是一樣的。
19樓:萢萢
char a是字元,char a[1]是字元陣列。
char *a和char* a有什麼區別
20樓:匿名使用者
沒有什麼不同,都
是定義一個指向char型的指標
但是要注意的是如果你想在一句話裡面2個指標,那麼正確的做法應該是char *a,*b;而不是char* a,b;
後面那個b只是一個char型變數
所以一般提倡使用第一種,避免糊塗搞錯,當然如果你僅僅在一句話裡面定義一個變數或者是在定義形參的話,那麼第二種看上去更直接一點
希望對你有幫助
21樓:匿名使用者
作用是一樣的,區別是風格問題。寫**多的人都有自己的風格,特別是大公司,要求風格統一,所以我們看到一段**風格與其他的不同時可以斷定,這段是copy的
22樓:匿名使用者
沒有區別,完全一樣。
23樓:冰戟玉語
c語言裡有char* a這種格式啊,沒見過,我只知道char *a表示定義了一個字元陣列。
計算機c語言中,那個char a[20]和char a,有什麼區別啊,**等解答,懂了第一時間採納
24樓:匿名使用者
char a[20] 是宣告一個大小為20的字元陣列 a,
char a 是宣告一個字元a
25樓:
char a 代表字元常量,而char a [ ] 代表字元陣列。
26樓:匿名使用者
char a
開闢一塊記憶體,儲存一個char型別的資料。直接使用a訪問該記憶體中的資料,&a表示這塊記憶體的首地址
char a[20]
開闢一塊記憶體,儲存20個char型別的資料。使用下標a[i](0<=i<=19)訪問該記憶體中的資料,如果單獨使用a表示這塊記憶體的首地址
27樓:
char a;表示一個字元
a = '0';
char a[20];表示一個字元陣列
a = ;
28樓:雨中笨豬
一個是字元陣列 一個是單個字元
29樓:蒼老師的戀愛
char a[20]:是定義一個字元陣列,裡面有20個字元元素,下標從0到19即a[0],a[1] .. a[19]
而char a:就是定義個字元變數
找規律填數,找規律填數字,怎麼填
文庫精選 內容來自使用者 kidddcz 小朋友們,在學習和生活中,我們經常會遇到許多按一定順序排列起來的數。在數學上,我們把這樣的一組數叫做 數列 找規律填數,就是先通過對數列的觀察,再經過嚴密的邏輯推理,然後發現數列中數的排列規律,並依據這個規律把所缺的數填寫出來,從而達到解決問題的目的。這一講...
C語言巧填數字
莊政警 a b c d e f 720這個條件是沒用的,因為a b c d e f只能等於720 include int main for a 1 a 6 a return 0 a 1,b 4,c 5,d 2,e 3,f 6a 1,b 5,c 3,d 4,e 2,f 6a 1,b 6,c 2,d 4...
找規律填數字1,2,3,7,11,16,(),
吧。然後規律是相差的組建大一。請問1.2.3.7.11.16.29這組數的規律,括號中應該填什麼數字?1.2.3.7.11.16.29這組數的規律,括號中應該填什麼數字 從第2個數開始,前乙個數依次加1 2 3 4 5 616 6 22 求助,找規律填數 這到底是什麼規律啊?1,2,3,7,11,1...