1樓:zz迎風
char *a是定義一個char型指標變數a,後面緊接著char *p=a,是定義一個char型指標變數p,並且p和a指向同一個位置。指標裡好像有一個說法是什麼:定義、關聯、引用,三者有順序
2樓:李旭展
字型常量,帶星號的話a直接定義為字型常量。帶星號的p為指標變數,a也定義成字型常量
c語言裡:char a[5],*p=a,這裡a是一個字元,還是首地址,為什麼?
3樓:匿名使用者
首地址,
char a[5],
這樣宣告就指明a 是首地址,字元的話應該寫 'a'
4樓:留下痕跡的人生
char a[5];
char *p = a // 相當於 char *p = &a[0],區別只是兩種不同的寫法
5樓:酷哥
首地址,指標只能存地址,a是陣列a[5]的陣列名,即陣列的首地址
char *p=a和char*p=&a有什麼區別
6樓:匿名使用者
有區別char *p=a,這個a一般來說是陣列,要不然出錯
char*p=&a 這個a一般來說是一個變數
7樓:謝應宸
前者自a是一個
指標變bai量
後者dua是一個zhichar型變數
參考#include
int main ()
8樓:曦夕兮
這個copy問題主要核心是&的作用bai和使用方法。
&有倆個用法du
1:&是引用的意思
顧名思義,&後面zhi新增的變數作出的返dao回值就是該變數本身的副本
舉個例子char*p=&a,此時p是a的一個副本,對p的任何操作都會改變a的值,當然,對a的任何操作也會改變p得值,也就是p和a是一個概念
2:&是取地址的意思
顧名思義,就是&後面的變數的地址是這個操作的返回值舉個例子,char*p=&a,此時指標p指向的地址就是變數a的地址單純看你的這倆句不能準確的說出來倆者的區別,具體區別需要看**的上下文以及**的實際使用情況
9樓:阡陌梨園
&為連線符,前一句為一個關係式,程式會自動運算結果,最終只返回a值,後一個關係式,可能程式不會運算,具體結果你可以除錯執行一下
c語言中,char a[] = "abc"; char *p = "cdef";
10樓:
char a = "abc"; 中a是陣列抄名,編譯時為其分配
襲4個char單元,前3個單元用「abc"中的字元對應初始化,最後一個存放'\0';char *p = "cdef";在編譯時先生成"cdef"字串常量,存放在常量區,並將首地址(c的地址)賦給char *型指標變數p。從以上可見,a是陣列,所以其中的元素abc都可變,可以重寫;而p指向的是常量,不可更改。
11樓:
區別就在於,陣列名a和指標變數p雖然本質上都是地址,但是陣列名a它的地址是不變的
內,即它是一個常指標,容指向是固定不變的;但是指標p是個指標變數,它的指向是可以改變的,你可以將a的地址賦值給p,即p=a;那麼指標p就指向了陣列a的首元素地址了,但是陣列名a它在賦值語句中是不能做左值的,因為它是一個常指標,和一個常量沒什麼區別。
12樓:匿名使用者
a定義是一個字串
陣列,*p定義的是一個字串常量。陣列名a是一個常量,指標p是一個變專量,屬當用作指標時,都能使用a+1,p+1,但是p++正確,a++錯誤,
通過a能改變陣列裡的元素的內容,但是不能通過p來改變它指向的字串,因為常量是不能更改的。a[2]=d正確,p[2]=d錯誤
13樓:匿名使用者
sizeof(a)=4 sizeof(p)=4 這裡不一樣
C語言和C 有什么不同,C語言和C 有什麼不同
c語言與c 的區別有很多 1,全新的程式程式思維,c語言是程序導向的,而c 是物件導向的。2,c語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在一個標頭檔案中 而c 對於大多數的函式都是有整合的很緊密,特別是c語言中沒有的c 中的api是對window系統的大多數api有機的組合,是一個集體...
c語言中35怎麼解釋,C語言中35答案為什麼是
include main 執行結果 3 5 3 3 5 3 3 5 3 3 2 1 3 2 1 3 5 3 4 5 4 4 5 4 0 5 0 n m,先分別對n和m取絕對值進行取餘運算,結果的符號與專n一樣,與屬m無關。前面那個來3沒有用,就是一個普通字元自 後面的 5,5代表bai後面列印 du...
大學C語言,為什麼選B,求解,這道c語言題為什麼選B
解釋如下 bai,b輸出的字du符zhi實際上是空格字元,dao 如下 include int main 執行結果 f c work a.exe please input a and b 1 2a 1,b a 49,b 32 字元1的ascii碼是49,空格的權ascii碼是32 為什麼是空格呢?輸...