1樓:末日高督
coust int n = 100;這個是常量,無法被修改.
/*分割線--------------------*/int i = 100,j = 200;
coust int *p = &i;//常量符號可以重新定義它的位址p = &j; //編譯通過
2樓:劉文正粉絲
常量就是右值, 它在記憶體中沒有它的空間, 也就不能改變它的值, 或者可以這麼說, 你就算改變了它也沒有任何價值, 而且這樣會對程式的一些地方的錯誤難以發現. 所以它是不能被改變的.
而符號常量和常量一樣, 它是不能被改變的. 但是它是有作用域的, 超過這個作用域就沒用了.
常量你可以理解成有作用域, 而它的作用域是整個程式.
3樓:零落丨絮丶
我也跟你有同樣的疑問,結果發現我們兩個的疑問是完全一模一樣,就是納悶這兩個為什麼乙個對乙個錯,我問了老師也上網查了一下,我大概理解了,我把我的想法跟你說一下。
首先"常量是在程式執行過程中值不能被改變的量"
常量就是乙個值,類似於10,20這樣的整型常量它本身就是不能改變的然而"符號常量在整個程式中其值都不能再被重新定義"為什麼是錯的可能你還沒學到或者沒理解"整個程式中"的意思,整個程式是由多個.c檔案組成,那麼每個c檔案都能定義乙個相同的符號常量,當你乙個c檔案同時引用兩個帶有符號常量的檔案時就會替換成乙個常量,那麼就會被重新定義,這是我的理解,希望能幫到你
c語言中,為什麼不能對字元指標變數指向的字串再賦值?
4樓:大野瘦子
因為抄c語言中,凡是以""括住的形式直接出襲現,而且你又沒有為其分配記憶體空間的字串都是常量字串,是不能修改其值的。
這樣:char a[6]="hello";
a[2]='c';
就可以了。
這裡你為hello分配了乙個長度為6的字元陣列空間來存放。
5樓:種令芮德曜
char*
a=為什麼不能修改,這個要涉及程序佔用的記憶體分段,大概分為**區,唯讀
區,全域性區專,堆屬區,棧區。"hello"作為乙個字串字面值,是被放在唯讀區,唯讀顧名思義就是不能修改的。char*
a="hello",相當於把hello的位址賦給了a,故而不能對a指向的內容進行修改。char
a="hello",這樣賦值的就是乙個字元陣列。字元陣列a是在棧區里申請的乙個空間給a,然後把唯讀區的"hello"進行了一次複製再賦值給a,這樣a的指向是能修改的。
6樓:匿名使用者
c primer plus 一書中寫到:「內容」為字串麵量,其被視為常量,故無法再進行修改。只能對其指標的值(改變位置)進行修改,不能改變其內容。
7樓:
這不是絕對的:
bai當指du
針指向的字串是zhi常字串時當然不能再賦dao值,因為目標是「常量專」,而當指標
屬指向的字串不是常字串時就可以再賦值,比如用動態申請記憶體方法建立的字串。具體說就是用char *p="abcqer12345";這種方法定義字串是不能通過指標改變內容的,原因是這個定義確定了abcqer12345是字串常量——因為char *p="abcqer12345";被編譯器解釋為「建立乙個字串常量abcqer12345,並把它的首位址(就是a的位址)賦給char *型指標p」——既然是「常量」,自然就不能更改。
8樓:匿名使用者
c語言bai中,凡是以""括住的形式直du接出現,而且你zhi又沒有為其分配內dao
存空間的字
符串專都是常量字串,是屬不能修改其值的。
char a[6]="hello";
a[2]='c';
就可以了。這裡你為hello分配了乙個長度為6的字元陣列空間來存放。
9樓:匿名使用者
char *a="hello";
''hello''是常量,所以a指向的是常量區,不能對於常量區的元素進行賦值
10樓:匿名使用者
char *a="hello";這個形式的定義是屬於字串常量,不可以修改的.
11樓:匿名使用者
不能修改!
char *p="hello";
相當於 const char *p="hello"
以這種方法初始化的字串是常量字串,而系統預設對常量賦初值後,其值無法被修改,否則會報錯,所以不能修改。
c語言的兩個簡單問題
1 看的這個裡面有一個a i,第一次迴圈的時候a本來就是賦值為0,再在輸出的時候還減了i,這時i是等於1,固a i就是 1了。接著迴圈,這時運算i 得i 2,再執行a i,a才等於2 2 這個很簡單看這個printf a d nc d n a,c 只要把前面的那個 n去掉就行了。1 for 語句裡有...
C語言問題,C語言問題4個
有for i 1 i 100 i 當執行的時候每次都要計算第乙個表示式嗎?是 2還有.i 1 i 這時i 2.再去計算sum 2.不就把1忽略了嗎 但是已經把i 1的情況計算過了 3順便請教下.for語句的執行過程是?如果形式為 a b c d 先執行a,判斷b是否成立,若不成立,則結束迴圈 若成立...
c語言問題,乙個c語言問題?
gcc是乙個著名的編譯器,屬於gnu編譯器套件,可以編譯很多種語言,一般用於編譯c c 程式,是linux下常用的編譯工具 編譯器只能說是一種翻譯 的程式,我們所熟知的dev c vs等其實屬於ide 整合開發環境 ide一般指包括了編譯器,編輯器等多種功能的軟體,功能比編譯器更加強大 linux下...