c語言中charaa,abc是什麼意思

2021-03-04 06:08:14 字數 2634 閱讀 9942

1樓:匿名使用者

定義了兩個char型別的變數: a和abc

其中變數a在定義的時候順便給它賦了初始值: 'a' (字元a)

2樓:郗斌丙翠柏

chara=

"abc";

中a是陣列名,編譯時為其分配4個char單元,前3個單元用「abc"中的字元對應初始化,最後乙個存放'\0';char*p=

"cdef";在編譯時先生成"cdef"字串常量,存放在常量區,並將首位址(c的位址)賦給char

*型指標變數p。從以上可見,a是陣列,所以其中的元素abc都可變,可以重寫;而p指向的是常量,不可更改。

c語言中char a,b; 是什麼意思 50

3樓:匿名使用者

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

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

4樓:匿名使用者

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

char *a;a="abc"與char*a;*a="abc"char *a="abc"有什麼區別嗎?

5樓:

1,char*a;*a="abc" 是錯誤的, *a是字元,不是字串。

2,另外兩句完全一樣。雖然編譯能通過,但是你這句本身就是錯誤的:字串定義應該是 const char *a = "abc"; 因為字串儲存在不可讀記憶體中,所以c語言中字串的的返回值是 const char*.

3, 如果要得到能讀寫的字串請使用字元陣列: char a = "abc"

6樓:

char *a;

a = "abc";

和char *a;

*a = "abc";

作用相同 就是將字串陣列的首位址給char 指標變數a(假設16位位址值,要被截斷成8位

char *a =「abc」 可以看作是 char a="abc";

7樓:太叔青芬俞環

不行p1沒有初始化(也就是常說的野指標),它指向的空間是未知的先初始化:

p1=char(**)malloc(10*sizeof(char*));

//分配10個char*的空間

p1[0]=(char*)malloc(sizeof(a));

//給p1[0]分配合適空間

strcpy(p1[0],p)

//現在可以了

c語言,char *a;a="abc"abc為什麼可以直接賦值給a?a分配動態記憶體

8樓:

a=(char *)malloc(10*sizeof(char));這一行在這個bai**中千

du萬不能要:如果這zhi樣寫,申請

dao的10個位元組還沒有用就把它內的標容識指標a用a="abc";指向了別處,那10個位元組就釋放不了了,會產生所謂記憶體洩漏問題。有char *a;和a="abc";就非常好了。在a是char *型指標時,a="abc";的意思不是將字串abc賦給a,而是「建立乙個常字串abc,並將首位址(第乙個字元的位址,這裡就是a的位址)賦給指標變數a。

以後就可以通過指標a來操作字串abc了,這裡指標a也不能再讓它指向別處,否則abc就再也找不到了……希望能幫到你。

9樓:聽不清啊

a=(char *)malloc(10*sizeof(char));

a="abc";

這兩個語句bai重複給 a 賦值du

,前乙個賦值就作廢zhi了,申請到的空間dao也就被丟棄了。

下面版乙個賦值是讓a指向一

權個系統中字元常量區的位址(只是把乙個位址賦值給a,並不是把字串賦值給a)。

10樓:匿名使用者

因為字元指標變數可以儲存字串的首位址。所以這條賦值語句實質是把字串「abc」的首位址存入字元指標變數a中。並不需要分配動態記憶體。

11樓:匿名使用者

就算不動態分配也可以直接賦值啊。建議先學習一下什麼是指標,搞清楚指標和陣列的區別。

12樓:良德廉永安

1、之所以要bai動態的分配內

du存是因為有zhi些時候在編寫程式的dao時候無法確定專其佔用的記憶體大小,這個屬時候就可以動態的分配給其一段記憶體空間,等到程式執行時在具體確定所需要的記憶體單元空間。

2、動態分配的記憶體空間是在堆(heap)上申請的,這部分的記憶體空間是有程式設計師自己管理的,需要程式設計師自己負責這些記憶體空間的釋放,使用free函式。

c語言中char a[]="abc"與char a[]={''abc"}有什麼區別

13樓:匿名使用者

首先你的問題有問題應該是

char a="abc"與char a=

區別字串以'/0'結束

c語言中yx又是什麼意思,C語言中yx是什麼意思

c語言中y x 它的功能就是 y x x 就是上面兩個語句的簡寫形式。c語言中y x是什麼意思 x 先自加後賦值,表示式的值為x加1後的值,x自身加1.比如b 5,a b,那麼a 6,b 6 y x y x 1 x x 1 把x的值先加1,再賦值給y x表示在做後面的運算之前x先做一次加法,所以這裡...

yx1c語言中是什麼意思,C語言中yx是什麼意思

y x 1 x x 1 y x 1 y x 1c 1c是16進製製數 c語言中y x是什麼意思 x 先自加後賦值,表示式的值為x加1後的值,x自身加1.比如b 5,a b,那麼a 6,b 6 y x y x 1 x x 1 把x的值先加1,再賦值給y x表示在做後面的運算之前x先做一次加法,所以這裡...

C語言中y1是什么意思,C語言中y 1是什麼意思

先說 吧,是一元運算子,如果 運算子位於變數的左邊,那麼在變數所在的表示式未進行計算之前,先將該變數減少1,如果位於該變數的右邊,就在表示式運算完成之後再減少1。還有乙個和這個符號類似的 也類似。這裡的y 1,如果你想看起來好看些,應該寫成 y 1,就是這麼乙個意思。舉例說明 intx,y 3 x ...