本文目錄一覽:
- 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-hant/n/257939.html