本文目錄一覽:
- 1、C語言字元串指針為什麼能賦值
- 2、c語言 字元型指針,指針不是只可以賦值地址的嗎,為什麼可以賦值字元串?
- 3、C語言中可以給指針變數賦值常數嗎?
- 4、在C語言中能否直接給指針指向的數據賦值?為什麼?
- 5、C語言中,為什麼字元串可以賦值給字元指針變數
- 6、C語言字元串指針為什麼能賦值?
C語言字元串指針為什麼能賦值
這個”abcd”在代碼段中,若作為右值,返回其首地址。也就是在代碼段中的地址。
關於代碼段,如果不理解,我相信樓主沒學過彙編,可以百度一下代碼段的百科,比我說的更清楚
這麼說吧,你寫的代碼,在運行的時候會被讀入內存,內存裡面必然有一段”abcd”這樣的字元串,那麼它的首地址就被當作這個字元串作為右值的返回值了。
c語言 字元型指針,指針不是只可以賦值地址的嗎,為什麼可以賦值字元串?
指針賦值字元串只能在定義指針時同步完成,此時會首先找個地方存下字元串,然後把首地址賦值給這個指針變數。
C語言中可以給指針變數賦值常數嗎?
C語言中可以給指針變數賦值常數,賦值方法為:
1、首先打開Microsoft Visual C++軟體,單擊「文件」菜單-「新建」,新建一個文件,文件名後綴為.c。
2、新建好文件後,輸入如下內容。
3、然後我們在{ }之間輸入函數的內容,我們先定義變數c1,變數的類型為char,字元型。
4、然後,我們用printf語句進行輸出。
5、當內容輸入好後,我們點擊圖中工具按鈕,對程序進行檢測,如果沒有錯誤,會得到下圖所示效果(紅線畫出)。
6、檢測到沒有錯誤後,點擊運行(紅色感嘆號),彈出的黑色窗口中為最終結果,可以看到大寫字母「A」顯示在上面。
在C語言中能否直接給指針指向的數據賦值?為什麼?
肯定能。
但你編寫的:int
*p;*p=7;這樣的程序不對。因為「能直接給指針指向的數據」賦值,而你編寫的小程序里的p還沒有指向,所以不能賦值;
這個指針叫「懸浮指針」,也叫野指針,它不能被賦值的。需要這樣編寫才可以:int
a,*p=a;*p=7;
C語言中,為什麼字元串可以賦值給字元指針變數
要理解
你要知道
字元串
幹什麼了
雙引號
做了3件事
1.申請了空間,存放了字元串
2.
在字元串尾加上了’/0′
3.返回地址
你這裡就是
返回的地址
賦值給了
p
希望採納~~~~~~~~~~~~~~~~
C語言字元串指針為什麼能賦值?
char *p是定義一個指針,「abcd」是存儲在rodata段的,指針指向「abcd」,並不是賦值。而且這種定義本身有問題,應該加const,因為*p指向rodata段,內容不能改變,如果沒加const的情況下,若再定義p[0] = 『c』;此時編譯通過,但執行程序時就會出錯。所以一般在定義字元串指針時加上const,遇到p[0] = 『c』;的情況下,在編譯時就會報錯,以便程序員修改!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/257939.html