c語言中ptr 1和ptr 是不是都指指標所指的值再加上一

2021-03-18 01:45:35 字數 1876 閱讀 6731

1樓:電控王子

*p+1中* 的優先順序高,所有是所指的值加1

*p++中* 和++優先順序一樣,結合方向自右向左,因此等價於*(p++),指標指向下一個元素

2樓:黑色的夢

不是。*ptr+1指的是指標ptr所指向的值+1所對應的值。

*ptr++在引用之前*ptr++所對應的值仍是*ptr所對應的值,在引用完之後指標ptr所指向的值自身+1,其值為之前的值+1。

c語言中*ptr++和*ptr+1有區別嗎

3樓:

當然有區別, *ptr++是先取ptr指向的值,執行過後ptr執行++動作,而*ptr+1是1和ptr指向的內容相加,完全不一樣

c語言中*ptr+1和ptr+1有什麼區別

4樓:昂首都

*ptr是ptr指向變數的值,*ptr+1就是把這個值+1,是一個變數

ptr+1是ptr指向記憶體地址往後移動一個單位大小(取決於變數)後的地址,簡單講就是ptr指向變數的後一個變數的地址,是一個指標

5樓:亥周苗富

當然有區別,

*ptr++是先取ptr指向的值,執行過後ptr執行++動作,而*ptr+1是1和ptr指向的內容相加,完全不一樣

c語言中ptr+1,*ptr+1,*(ptr+1)有什麼區別

6樓:物理公司的

假設int a[5]=;

int *ptr = a;

*(ptr+1)是指標變數ptr(陣列)指向的首地址後的(第二個)元素的值;

*ptr+1是指標變數ptr(陣列)指向的首地址(第一個)元素的值加1。

指標直接加1沒什麼實際的意義ptr+1

c++ *ptr+1和*(ptr+1)的區別

7樓:

*(ptr+1)是指標變數ptr(陣列)指向的首地址後的(第二個)元素的值;

*ptr+1是指標變數ptr(陣列)指向的首地址(第一個)元素的值加1。

注:有括號先算括號裡面的,也就是*(ptr+1)中先將指標指向ptr+1,再求值;而*ptr+1,先求*ptr,再加1。

8樓:

不一樣,*ptr+1=1;*(ptr+1)=1;雖然結果一樣,但是這是因為你的陣列裡存放的資料特殊。解釋:*ptr是取陣列的第0個元素,也就是0,然後再+1,即0+1=1;*(ptr+1)先是ptr指向的地址加一,就由原來指向陣列的第0個元素地址變成指向陣列的第一個元素(1)的地址,在*(),就是取陣列得第一個元素1;

9樓:

*ptr+1 是將指標的內容加一,這裡是a[0]的數值加一

*(ptr+1)是將指標後移一個單位後取內容,這裡是a[1]的數值

(*ptr)++和ptr++一樣嗎

10樓:宮恨秋

ptr -- pointer (指標)縮寫。

彙編裡面 ptr 是規定 的 字 (保留字)。

mov ax,bx ;是把bx暫存器「裡」的值賦予ax,由於二者都是word型,不用word

mov ax,word ptr [bx];是把記憶體地址等於「bx暫存器的值」的地方所存放的資料,賦予ax。由於只是給出一個記憶體地址,不知道希望賦予ax的,是byte還是word,所以需要用word明確指出!

c語言裡 ptr 是 程式設計師自己 寫的變數名字,不是保留字。當然,它可以是 指標。例如:

float a[5];

float *ptr;

ptr = &a[0];

c語言中為什麼a 0不是字元常量?為什麼a 1 a是錯的?a a 1表示什麼

1.你這個 不bai是單字元,是三個字元,嚴格du說你這個是zhi一個字串,你dao這個是一個值,左邊沒有常回量名 2.賦值答號的左邊不能是表示式,只能是變數,這個不管是什麼語言都是這樣規定的 3.a a 1,應該是先a a a,然後a a 1 a 看到了嗎?這個是字元常量,你那個是字串常量 c中字...

c語言中判斷自然數是不是素數的條件是什麼

1,首先了解素數的定義,一個大於1的自然數,除了1和它本身外,不能被其他自然數整除。2,以下是c語言程式。include int main if flag 0 根據flag的值判斷n是否是素數printf d不是素數 n elseprintf d是素數 n return 0 c語言程式設計判斷輸入的...

c語言中的二維陣列裡a1和a1為什麼都是地址

二維陣列,int a 10 20 a是一個指標的指標,即二級指標.一個指標加一個數,當然還是指標 即a 1是指標 取值一個二級指標,是一級指標 即指標 所以還是指標,不過型別發生了變化.a 1的型別為int 10 而 a 1 的型別則為int 也就是平常的指標.如果你學習二維陣列是用心,你就會知道不...