關於指標與賦值

2022-12-09 03:35:12 字數 751 閱讀 5927

1樓:匿名使用者

第四個不正確。

char *p;初始化了一個地址,這個地址是指向一個字元的,而存放這個字元的空間沒有定義,因此此時p的值很可能指向系統禁止的區域,

p="english";有兩個錯誤,第一,p是一個地址,不能被賦予字元竄,第二如果p是指向字元竄的地址,需要strcpy函式進行復制字元竄。

2樓:匿名使用者

第一個正確,對字元陣列按照字串格式輸入.

第二個正確,未指定陣列大小,但是有初始化,系統自動幫助確定大小.注意:佔8位元組,但長度為7,末尾有'\0'

第三個錯誤,雖然可以用庫函式gets()對p進行字串賦值,而且有額外的優點:可以讀入空格,而scanf()遇到空格後面的就失效了,保留在緩衝區,供下一次的scanf() 函式呼叫,注意:緩衝區有東西時,自動會讀取.

但是錯就錯在沒有初始化指標所指的區域大小,

第四個錯誤. p是指標,右邊是字串! 雖然可以用char *p="hello"初始化,但是不能對指標這樣賦值.

3樓:匿名使用者

1、2是對的,3和4由於只有指標,而沒有分配空間就賦值,所以是錯的。還有,字串賦值不能用=,而應該用strcpy()函式。

4樓:晒白的黑馬

編譯的話其實這4句都不會出錯

不過執行的時候 3會出錯

因為p指標沒有被指向 任何內容 所以呼叫get(p) 之後不能正確訪問p所指向的內容,所以會執行出錯

c語言中用指標賦值字串為什麼不加如下

a cool 這是地址來賦值,將一個常量字串 自的首地址賦值給a這個指標。a cool 這是字元賦值,不是字串 雖然a叫字串指標,但char a這樣的定義,a必然是一個字元,而不是多個。因此後面的常量會被忽略為一個字元,進行數值賦值 也可以理解為拷貝賦值,區別於地址賦值 在a沒有分配地址的情況下,直...

在C語言中能否直接給指標指向的資料賦值?為什麼

可以,但int p p 7 這樣不行。因為 能直接給指標指向的資料 賦值,而這裡的p還沒有指向,所以不能賦值,這種指標有個名字叫 懸浮指標 是不能給它賦值的。這樣才可以 int a,p a p 7 實際上就是使a等於了7。注意事項 也可以使用賦值運算子為指標變數賦值,但要保證兩個指標變數的型別相同。...

關於指標陣列

程式修改如下 include stdio.h void display array int p num 注意這裡 void main int num 5 注意這裡以及以下5行 num 0 a 0 num 1 a 1 num 2 a 2 num 3 a 3 num 4 a 4 display arra...