1樓:
c並沒有把char *str預設為是const char *str,比如:
#include "stdio.h"
int main(void)
輸出是string,說明*str='s';是合法的,也說明str並非const性質。你說的情況可能是指
char *str="12345abc";這種情況。在這種情況下,其中的"12345abc"不可改寫是自身性質決定的,因為char *str="12345abc";中的"12345abc"是定義了乙個不可重寫的「常字串」,這與str無關,str仍然可以重新指向乙個非const字元變數。
2樓:匿名使用者
有一篇文章是關於說c語言的變數存放的區域,好像是分為5個區,棧區--由編譯器自動分配,程式設計師不可以更改堆區--由程式設計師自己分配並釋放
常量區--所有用到的常都放在這裡
全域性區(靜態區)--用static關鍵字的變數和全域性變數放在這裡程式**區--2進製**存放區
以上棧區和常量區的資料是不可以更改的。
char *str = "aaaa";
str是乙個指標,存放在棧區,字串aaaa存放在常量區,lz去搜尋有關堆與棧的文章,就會明白其中原因了。
char **str和char *str[]有什麼區別?
3樓:匿名使用者
**str右邊的*表示
來指向每乙個字串第一自個字元的bai位址,du左邊的*表示指向第乙個字串的zhi位址。
const char **str 或 char const **str可以定義dao,const不區分前後順序,意義都是表示str是常量(不能賦值)。
只能定義char *str[5]而不能定義char *str,因為編譯時程式不能確定str陣列有幾維。
char *str[5]表示字串陣列,陣列數量是5,既是5個string又是乙個string array,每個string不限字元個數。
4樓:千鋒教育
兩者都代復表乙個字元陣列儲存制
空間的首位址,bai區別在於du
char *str;
這個變數可以進zhi行指標運算,比如:daostr++;
str--;
但如果定義成:
char str;
則str++這樣的語句是錯誤的,這個首位址不得進行賦值計算。
在不改變str指標指向位址的情況下,下面的語句是一樣的結果。
printf("%s",str+2);
c語言中char str括號裡為什麼是
這表示的是字元陣列,128是字元陣列長 不是字串長 char str 456 也是可以的。其中每個成員的值在 128 127之間,str 0 str 455 每個值不能超過127.如果超過,則擷取低位位元組存貯。題目裡是統計輸入字串中小寫英文字母個數,開頭用的就是這個。這個就好理解了。ascii 就...
《全職高手》為什麼能火起來,為什麼全職高手會火起來
任性少女 你如果說的是 的話,那是因為作者在刻畫人物時很細膩,很鮮活,就感覺是真實存在的。這群人就在你身邊,展現了年輕人的熱血,也讓我們想去了解電競這個職業。只要有夢想就要努力,即使別人說不務正業又怎樣,只有自己知道什麼是自己想要的。裡面每一個人物都有血有肉,非常飽滿,裡面人物雖讓很多,但是都能夠讓...
為什麼預設字型要用宋體呢,為什麼word預設字型要用宋體呢?
卷卷霸氣 宋體 是一種漢字印刷字型的風格類別。筆畫有粗細變化,而且一般是橫細豎粗,末端有裝飾部分 即 字腳 或 襯線 點 撇 捺 鉤等筆畫有尖端,屬於白體,常用於書籍 雜誌 報紙印刷的正文排版。微軟最早推出中文windows的時候,考慮到中文環境下的使用習慣,簡體中文版使用的標準字型是 中易宋體 s...