C語言中,char ahappy與char ahappy 與char ahappy

2021-04-20 14:50:38 字數 4356 閱讀 6794

1樓:

1,表示定義一

個含有五個元素的

2樓:匿名使用者

果回a=;strlen(a)=5

答c區別不大

3樓:741852963一

自己理解吧

c語言char a='h';a-'a'+'a'得什麼

4樓:海盜青

答案是h 其實就是大小寫轉化

也可以這麼看

h對應的ascii碼十進位制為72 a為65 a為97a-'a'+'a'也就是'h'-'a'+'a'=72-65+97=104

h對應的ascii碼十進位制就是104

5樓:匿名使用者

查ascii碼錶吧,自己查就知道了,h是

72,a是65,a是97. 72-65+97=104,也就是ascii碼錶中對應的h啦,這樣能理解不?

事實上,一個字母減去一個大寫字母后加上一個相同字母的小寫,那麼就是把這個字母由大寫轉為小寫啦!這些就屬於小技巧了吧,只要會看ascii表和char字元的使用就行啦!

6樓:匿名使用者

hc-'a'+'a'一般用來將大寫的c轉為小寫的c

asiic碼中大小寫字母間的偏移都是一樣的

或者可以直接用 c+32來將大寫的字元c轉為小寫的字元

7樓:匿名使用者

這要看你以什麼格式輸出,如果是以%d輸出,則得到104,;以%c輸出,得到'h'。

8樓:03森林

檢視ascll碼錶 ,把裡面的字母對應上去,只是數字的加減法,自己算吧

9樓:匿名使用者

將大寫變為小寫~~~~

c語言中char *a[ ]什麼意思,他和char (*)a[ ]有什麼什麼區別?

10樓:匿名使用者

char *a表示的是陣列a是一個指向char的指標型別陣列,相當於a裡面的每一個元素都實際值都是一個指向字串的指標(即儲存某個字串的首地址)

後面這個你應該要問的是char (*a)吧,不然的話就和第一個一樣了

char (*a) [n]表示的是指向一個元素為n的字串陣列的指標,說白了就是一個陣列指標(指向陣列的指標)。這個和函式指標有點像 int (*p) (int,int),表示指向返回值為int,並且含有2個int變數的函式

11樓:凌亂心扉

兩者區別如下:

一、」讀「」寫「能力

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,防止產生野指標。

12樓:匿名使用者

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型別

13樓:狂盜一枝梅

char *a一般用於函式中形參的宣告,特別只用於一維陣列;char(*)a不明白什麼意思,難不成是將a陣列強制轉換成字元型???只是猜測,不要多想呵。

14樓:楊武威

char *a[ ]相當於char** a,是指標的指標;

char (*)a[ ] 是char型別指標陣列;

(純屬個人理解,僅供參考)

15樓:小小的

含義是一樣的。其實陣列也是指標。都是宣告瞭a這個char*型別陣列。雖然有語法錯誤,但是意思是那樣的。

16樓:匿名使用者

char* a:a首先是個陣列,陣列中的每個元素是char*型別的,也就是每個元素是一個指向char型別的指標,至於char(*)a,圓括號一般是用作強制型別轉換的,這種寫法沒有見過,編譯器應該分析不出這個語法,會報錯

17樓:快來見本大人

char *a[ ] 表示一個陣列a,陣列裡的元素型別是char *

char (*)a[ ] 表示一個指標變數a,指向的變數型別是 char 的陣列

在c語言中char a[]={'a','b','c'}和char a[]="abc"有什麼區別 它們各在記憶體裡佔多少和位元組

18樓:匿名使用者

char a= 這是一個字元陣列,佔3個位元組。 char a="abc" 則不同,它是一個字串,最後還有一個'\0'結束符,佔4個位元組

c語言中,char a[] = "abc"; char *p = "cdef";

19樓:

char a = "abc"; 中a是陣列抄名,編譯時為其分配

襲4個char單元,前3個單元用「abc"中的字元對應初始化,最後一個存放'\0';char *p = "cdef";在編譯時先生成"cdef"字串常量,存放在常量區,並將首地址(c的地址)賦給char *型指標變數p。從以上可見,a是陣列,所以其中的元素abc都可變,可以重寫;而p指向的是常量,不可更改。

20樓:

區別就在於,陣列名a和指標變數p雖然本質上都是地址,但是陣列名a它的地址是不變的

內,即它是一個常指標,容指向是固定不變的;但是指標p是個指標變數,它的指向是可以改變的,你可以將a的地址賦值給p,即p=a;那麼指標p就指向了陣列a的首元素地址了,但是陣列名a它在賦值語句中是不能做左值的,因為它是一個常指標,和一個常量沒什麼區別。

21樓:匿名使用者

a定義是一個字串

陣列,*p定義的是一個字串常量。陣列名a是一個常量,指標p是一個變專量,屬當用作指標時,都能使用a+1,p+1,但是p++正確,a++錯誤,

通過a能改變陣列裡的元素的內容,但是不能通過p來改變它指向的字串,因為常量是不能更改的。a[2]=d正確,p[2]=d錯誤

22樓:匿名使用者

sizeof(a)=4 sizeof(p)=4 這裡不一樣

c語言中出現「char *a」是什麼意思?

c語言中的與,c語言中的 與 是什麼意思?

最近 盤 字很流行,盤是什麼意思?為什麼能成為網路熱詞?你這麼理解是可以的,就是取指標所指地址處儲存的數值,就是去一個變數的地址。例如 int a 10 print n d a 列印出來的是a的地址print n d a 列印出來的是10 例如int a 10 int p p a 是把陣列中的第一個...

c語言中a 》s s的區別,C語言中a s i 與a i s的區別

a s i 是a地址上的結構體成抄 員變數s的第i個元素。寫成非指標的方式,就是a 0 s i 這種寫法,要求a和s都必須是指標型別。a i s是a地址上,第i個a中的成員變數s。這種寫法,要求a必須是指標,而s不一定是指標。對比a 0 s i 和a i s,可以看出,這兩個是完全不同的意義。a是結...

C語言中關於continue與break的例子的詢問

我的答案是第一個break永遠也不會被執行。因為執行到continue程式即結束本次迴圈執版行下一次迴圈,直到j n i,這個過程中continue後面權的三條語句根本沒有執行的機會。但第二個break將被執行,而他後面的 i則沒有執行機會。continue下面三行是廢 永遠執行不到 c語言中的br...