c 中字元指標p1表示什麼,c 中char p是什麼定義 兩個 和乙個 代表什麼意義

時間 2022-04-09 17:05:20

1樓:

一步步分解吧。。。首先,*和++的優先順序一樣,所以先算(*p),接著再算(*p)++,然後是((*p)++)+1

所以,該表示式等同於((*p)++)+1

這樣聽起來好像有點抽象吧。

給你舉個簡單的例子吧:

#include

int main()

在上面這個例子中,p指向了a,所以,*p的值便是a,所以*p+++1也即a+++1,也即(a++)+1,由於是後自加,所以(a++)的值仍然是1,然後求1+1,所以,輸出的結果是2

當然,當執行完了這條輸出語句之後,a的值變成了2.。。。

還有什麼不明白的嗎?可以繼續追問~~

2樓:休採春

比如字元指標p指向「acde」字串,

則*p = a;

*p+++1 = *(p++)+1 = b ('a'的asc碼+1)然後做p++指標往前移一位,指向c

向 * ,++,--,這類單目運算子都是從右向左結合的

3樓:匿名使用者

p++是指p進行自加然後+1 要注意的是 這是p++不是++p

p++是在式子執行結束後再自加 所以 這題的答案是p+1 得出結果之後 p在自加1

也就是說 假如p是1 那麼 答案是1+1=2 之後 p再自加變成2

4樓:匿名使用者

#include

void main()

;int *p = a;

cout <<*p+++1<

cout <<*p; //輸出2 這個2是由陣列第二個元素得到的}所以你可以這樣理解

*p++ 這個表示式的值是*p 而這個表示式運算完之後p又加了1. 區別於*(++p)

(*p++)+1 所以就可以得到上面的結果.

5樓:匿名使用者

湊熱鬧的來了。

當++作為字尾時,它和*的優先順序一致,結合方向是從右至左。故先算後++(此時暫不影響p),再算*,最後算優先順序最低的+。

如 char *p = "ubcd"

則*p+++1結果是乙個右值v,p指向第2個字母b。

6樓:陳宗權

已經有這麼多回答了,本來不想湊熱鬧,但看看都不對。還是我來說說吧。

*p+++1等同於( (*(p++))+1),表示的是兩個含義:

1、計算p所指向的字元的ascii碼加1的和,結果是個整數;

2、讓p指向後面的乙個字元。

特別說明一下,這個運算並不會改變p所指向的字元內容。

給你乙個示例**可能更好理解一些。

#include

using namespace std;

int main()

c++中char **p是什麼定義 兩個*和乙個*代表什麼意義

7樓:匿名使用者

char *p 表示指向乙個字元的指標。

char **p 表示指向乙個字元型指標的指標。

c++中*p的值是什麼意思?

8樓:tn瓶邪

這個不等價於二維陣列,只不過用法相似。

int a

int *p = &a //p儲存的是乙個 「 int型的變數a的位址」

int **q = &p //是q儲存的是乙個「指向int型的變數a的位址的指標的位址」

你可以模擬一下,將int*看成乙個整體,也就是(int*)(*p)和你平時用的宣告指標的方式非常相似(int)(*p)乙個是指向int型別的指標,乙個是指向int*型別的指標.

9樓:匿名使用者

*p 說明p是乙個指標,指向乙個儲存空間*p的值就是它指向的儲存空間的儲存的值

如int *p,a;//定義p是乙個指向整型變數的指標變數..

p=&a;//p的值為a的位址,即p指向aa=5;//a的值為5,a與*p是等價的,那麼a=5,即是*p=5printf("%d",*p);//輸出結果為5同理char *p;//定義p為乙個指向字元型變數的指標變數...

char c;

p=&c;//p的值為變數c的位址,即p指向c..

*p='a';//與c='a'等價

printf("%c",c);輸出結果為a一句話:

*p的值就是它所指向的元素的值(p的值為它所指向的元素的位址,和*p是不一樣的)

10樓:神州萬事通

int *p,x=20; //這裡是定義了乙個可以指向整數的指標

p=&x;

printf("%d",*p); //此處是間接運算子,表示取出指標p所指位址裡存放的內容(在此例中是數字20)

C語言字元陣列的指標問題,C語言字串指標問題

這個就是看你對指標的理解了 char name 相當於你定義了乙個char 的指標陣列,每個陣列元素指向乙個字串。char name 表示你定義了乙個字元陣列,而你初始化的時候,確實字串,肯定編譯不過的。是不是二維陣列,就看你怎麼理解了,char name 中的name相當於char char na...

C 中的字串指標和陣列問題

你用的vc吧。include using namespace std main 這段 在vc下有警告,但不能執行。但是在codeblocks下編譯執行這段 沒有警告,可正確執行。vc的編譯器老一些了 vc下你改成char q new char 就可以了 這才為p分配了記憶體空間,執行q 0 s 並不...

c 指標指向陣列的問題,c 如何讓指標指向字元陣列

你可以這樣寫short b 10 a 對乙個陣列取位址時,代表的是整個陣列整體,包括對 a做加1運算也是以陣列長度為單位,如 b a 1,實際b已經加了10個short長度而不是1個short 你去看一下陣列的基本資料了 陣列名的值是乙個指標常量,也就是陣列第乙個元素的位址 a的型別是short 1...

c語言字串指標 我對字元指標這方面特別特別混,各位給解釋一下下面的

首先,乙個完整的字串要以0值結尾,所以你開設char a 8 實際上只能存放7個字元的字串,最後乙個a 7 應當是0表示字串結尾。那麼假設你輸入了asdfghj。cin a 在編譯器看a的定義知道你要輸入字串,因為a是乙個字元型 陣列 指標 cin a 0 在編譯器看a 0 的定義知道你要輸入乙個字...

c 字串中插入字元,C 字串中插入字元

include stdio.h define aac 20 define bac 20 define sac 100 int main sac j 0 printf s sac return 0 經過測試,請安心使用 凡鳥 我用str.replace 為什麼替換出來被替換的部分就成了亂碼 是兩個字元...