str 和str 的區別,str i str j 與str i str j i 有什麼區別?

2022-10-08 05:36:37 字數 3720 閱讀 6660

1樓:暗影之王

兩者都代表一個字元陣列儲存空間的首地址,區別在於char *str;

這個變數可以進行指標運算,比如:

str++;

str--;

但如果定義成:

char str;

則str++這樣的語句是錯誤的,這個首地址不得進行賦值計算。

在不改變str指標指向地址的情況下,下面的語句是一樣的結果。

printf("%s",str+2);

2樓:匿名使用者

*和++的優先順序一樣,但都是右結合的操作符,所以先結合的是右邊的++,然後才是左邊的*,

*str++就等於是*(str++)

後置自增 先用再加,*解引用的地址是加之前的地址str加完指向 'y' ,解引用的是m

3樓:匿名使用者

str++ str是一個char* 指向字串 m的位置 ++之後指向了y 所以 「y name is asura!"

*str++ 其實根據運算子號優先順序拆成這兩句 *str ; str++; 你可以直接printf("%c",*str++); 應該輸出的是*str 也就是 m 然後str++ 因此就和上邊的結果是一樣的。。

4樓:匿名使用者

因為解引用操作符 「*」的優先順序低於自增運算子「++」,所以你這樣改不會發生任何變化,但如果寫成(*str)++就會出錯了,因為c語言裡字串不支援++運算。

5樓:匿名使用者

str++你應該知道 指標走一位嘛

*str++分開來寫就是 *str;str++;

此題結果一樣是因為*str;這句毫無用處,指標照樣走了一步,對結果沒有影響

6樓:

str++是str指標加1,指標向後移動一位,指向y

*str++是:

++運算子優先順序等於* ,先執行*str,為m,之後m++應該沒含義吧,m是個字元常量,至於為什麼沒報錯就不知道了

char **str和char *str[]有什麼區別?

7樓:匿名使用者

**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不限字元個數。

8樓:千鋒教育

兩者都代復表一個字元陣列儲存制

空間的首地址,bai區別在於du

char *str;

這個變數可以進zhi行指標運算,比如:daostr++;

str--;

但如果定義成:

char str;

則str++這樣的語句是錯誤的,這個首地址不得進行賦值計算。

在不改變str指標指向地址的情況下,下面的語句是一樣的結果。

printf("%s",str+2);

str[i++]=str[j]與str[i]=str[j];i++;有什麼區別?

9樓:風若遠去何人留

沒有什麼區別

寫在一起 效率高一些

看起來好看一些

執行結果是完全相同的。

str和str[i]有什麼區別?

10樓:匿名使用者

str代表串,準確的說是串的起始地址,串以字元\0結束。

str[i]代表串中的字元。

倘若用指標,正確的流程應該如下:

p2=str2;

for(i=0;i<10;i++)

*p2++=*(str1+i);

*p2='\0';

p2=str2;//指標回位

printf("the new string is:\n");

for(i=0;i<10;i++)

printf("%c",p2[i]);

11樓:匿名使用者

str是單一的變數。而str[i]是一個陣列,如:

string str; //是一個變數

string str[10]; //是一個陣列,相當於10個str

12樓:匿名使用者

str是變數名 str[i]是陣列變數名

我是學c語言的!!!

c語言 char *str 與char str[] 這倆種定義字串到底有什麼區別

13樓:園林植物手冊

一、概念不同

char *str 宣告的是一個指標,這個指標可以指向任何字串常量。char str 宣告的內是一個字元陣列容,陣列的內容可以是任何內容,嚴格意義上說,末尾加上'\0' 之後才能算是字串,

二、變數不同

char *str裡的str是指標變數,str的值未初始化(區域性變數的話。全域性則自動初始化為null)。char str[ ]裡str是地址常量,str的值是str[ ]的地址。

三、定義方法不同:

在char * str中,明顯str的型別是char*。這沒什麼特殊的,只是一個簡單的char指標。char str是不能這樣定義的,所以假定用char str[6] = "abcde";那麼這裡str的型別是char[6](6個,不是5個,因為最後有個0) ,而這種定義語句也是定義一個char[6]型別的唯一方法。

14樓:這自來水來自這

char *str; 這裡str是指標變數,來str的值未初源

始化(區域性變數的話。bai全域性則du自動初始化為null)char str[10]; 這裡zhistr是地址常量,daostr的值是str[0]的地址

15樓:匿名使用者

兩者都代表bai一個字元陣列存du儲空間的首地址,zhi區別在:

char *str;

這個變數可dao以進行指標運算,比如

回:答str++;

str--;

但如果定義成:

char str;

則str++這樣的語句是錯誤的,這個首地址不得進行賦值計算。

在不改變str指標指向地址的情況下,下面的語句是一樣的結果。

printf("%s",str+2);

16樓:

第一種為定義一個指標變數;

第二種為定義一個陣列;

如果定義時為其賦初始值,如char *str1 = "hello world!

17樓:匿名使用者

而且char *str中str更方便活用因為是變數 所以可以進行多重操作,從某種意義上說,一般採用第一種方式去定義一個字串,,注意下越界和初始化的問題就好了

18樓:匿名使用者

char *str 宣告的是一個指標,這個指標可以指向任何字串常量;

char str 宣告的是一個字元陣列,陣列的內容可以是任何內容,嚴格意義上說,末尾加上'\0' 之後才能算是字串

ifstrcmpstr1,str2問的是什麼意思

strcmp這是一個字串比較函式,如果兩個字串相等,則返回0,if strcmp str1,str2 這個語句的意思就是如果這個兩個字串相等,就執行後面的語句。比較兩個字 抄符串。設這襲兩個字串為baistr1,str2,若str1 str2,則du返回zhi零 若 daostr1 str2,則返回...

求帶S T R這些字母的英文名(女孩

rachel 瑞琪兒 母羊或小羊 和善的 彬彬有禮的rae 瑞伊 母羊 rebecca 麗蓓卡 圈套 迷人的美 陷阱regina 蕾佳娜 女王 皇后 純潔的人renata 蕾娜塔 再生的 更新 恢復renee 蕾妮 再生的 rita 莉達 勇敢的 誠實的 riva 莉娃 在河堤 河邊的人 rober...

閃之軌跡2str50能和技能50疊加嗎

不疊加,抄軌跡系列buff最多隻加50 debuff最多也是50 和技能,魔法,還是道具無關。不過閃軌可以通過金牛,紅蓮,散雲,霸道這些迴路繼續增加傷害,因為這些迴路並非加buff,而是直接加傷害值。同時裝兩個 前三個是核心迴路 加上str的buff傷害還是很可觀的。閃之軌跡戰鬥的時候,buff疊加...