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