C語言可以把指標和陣列名之間相互賦值嗎

2021-03-03 20:48:15 字數 1309 閱讀 5225

1樓:匿名使用者

不可以,陣列名字相當於一個const指標,不能再賦值了

2樓:匿名使用者

不可以,c/c++中 陣列名雖然形同一個指標 但是是常值 是不可以進行賦值操作的,同理 也不可以進行++ -- += -= 操作,希望可以幫助到你

3樓:匿名使用者

可以,不過上面的例子里長度會不同,編譯會出現警告(warning)。

4樓:我是it農民工

不行,陣列名錶示的是陣列的首地址,是常量,常量是不能賦值的;反過來,指標是變數,可以將陣列名賦給指標。

c語言裡面為什麼不能把指標賦給陣列名?

5樓:匿名使用者

有兩種情況。。

1、char *p = "123"; char s[4];

s = p;

這種情況是不合法的。。此時的陣列名雖然也是指標,但應該看成指標常量,是不能修改的。。

2、void fun(char a){}

void main()

陣列作為函式引數的時候,是可以把指標變數賦值給它的,這時陣列名就可以看作一般的指標變數了。。

簡單的說就是這樣。。

6樓:匿名使用者

陣列名是常量,也就是常指標。給常數賦值自然是錯誤的。

7樓:匿名使用者

他是個常指標,是個常量,不能賦值的

c語言中二維陣列名能否直接賦給指標變數

8樓:匿名使用者

二維陣列的指標與指標的指標是不一樣的。

所以int **ppr;

int fool[2][3];

ppr = fool;

這樣是不行的。

二維數回組的指標必須

答限定第一維的大小。

所以:int (*ppr)[3];

ppr = fool;

這樣才可以。

9樓:匿名使用者

可以,但所宣告的指標型別是指向指標的指標如:

int a[3][3];

int** array_ptr=a;

10樓:匿名使用者

可以,二維陣列名本身就是表示一個陣列的首地址。

11樓:手機使用者

可以,陣列名是陣列首元素的地址

12樓:孓圊

可以,例如a,*p=a

c語言空指標野指標通用指標,C語言 空指標

野指標就是不知道指向 或者說不知道指向的記憶體是否可以使用,一般都是剛剛宣告但沒有初始化的指標。空指標不是指向常數0,只指向地址0,即null,其實換句話說,指標的本質就是地址嘛,空指標就是指標本身的值 地址 為0 空指標的作用是防止野指標的出現,因為我們不能知道野指標到底指向 所以我們也無法判斷一...

c語言行指標和列指標,C語言行指標和列指標

在任何時候 抄都不能定址,它是用bai來取地址的.p i 在任du何時候zhi 都等價dao於 p i p i j 其中p是int x 型別的 在任何時候都等價於 i x j x是一個變數.int a 10 20 這裡x 20 int a 20 10 這裡x 10 c語言沒有什麼行指標,列指標.一維...

C語言指標

正如您所說 a是一個常量,常量是不能修改的變數。不可以修改,不代表不可以引用呀,a i 只是借用a的值 陣列的首地址 來訪問其他成員,實際上並沒有改變a的值。但是換成a 執行之後a的值就改變了,被修改了,編譯當然通不過啦。這道題中的a是陣列的首地址,要是改變a的值,那陣列不是也改變了嗎?所以,一定是...