哪位大神對C語言的指標移動的知識很瞭解的,求指教

2021-03-06 00:28:56 字數 3003 閱讀 2812

1樓:匿名使用者

你看的書是什麼年代的

你這個例子能成立的前提條件是a,b,c,d,e所在的記憶體空間連續,且按定義順序分配棧記憶體,實際上在目前的系統,這兩點都不能滿足,所以p的移動是不安全的

你這個實驗應該用陣列來做

2樓:匿名使用者

這是什麼書,直接扔了,有任何證據可以確定變數abcd的地址一定是連續的麼,不連續的話,就成野指標賦值問題,像這種問題就應該用陣列來做

#include

int main(void)

,*p=&a[4];

printf("原始資料

*(p-1)=1,*(p-2)=2,*(p-3)=3,*(p-4)=4;//*(p-5)=5;

printf("通過指標移動引用後

return 0;}

3樓:追神的孩子

如果你這程式真是從書上抄來的

那就把書扔了吧

明顯是錯誤的。

c語言指標++的問題搞不懂?求大神指教

4樓:丿艾瑞灬莉婭

陣列名等價於陣列第一個元素的地址,a等價於&a[0]

*ptr_a++,先執行輸出*ptr_a,再ptr_a++,即指向下一個地址

5樓:匿名使用者

答:int *p=&a[1] 即在建立指標p並且初始化的時候將陣列a的第二個元素的地址賦值,使得指標指向8的位置,(*--p)++ 就是指標p先自減1(因為p是int型別的指標,所以自減1就是p所儲存的地址值減去4個位元組)從而使得指標p指向a[0],*是取值運算子,++是字尾形式,所以將5賦值給y後a[0]的值再自加1為6,最後列印y與a[0]的值就是5和6。

怎麼回事,求c語言大神指教,急急急急

6樓:

胡寫,問題大了!指

針、指標的指標、變數三者的關係沒搞清,亂=一氣,肯定錯。首先,從bb=&b...那一行看,bb應該是指向指標的指標,即二重指標,可是宣告的時候它們是指向int型變數的指標,所以類似bb=&b的語句全部非法!

要修改就得在宣告時在*bb、*cc...前再加一個*,讓編譯器知道它們是指向另一個指標的指標而不是指向int型變數的指標。但這樣後,if後面的語句仍有問題:

h是個int型變數,怎麼能用h=ee;這樣的語句為h賦一個二級指標的值?ee=&ff就更離奇了,ee和ff都是二級指標,&ff就是三重指標,ee=&ff分明是要把三重指標的值賦給一個二重指標變數,=號兩邊型別就不匹配……由於沒有說題目要幹什麼,從**中也看不出目的,所以不好改!

7樓:匿名使用者

指標變數 bb,cc,dd,ee,ff 直接列印出來是它的地址值,

所以printf中應該寫為: *bb,*cc,*dd,*ee,*ff

c語言程式設計 要用指標把兩個字串連線起來, 我這麼編的不知道哪錯了。求指教,求正解。謝謝

8樓:小丁創業

語法有錯誤,可以按照如下方法實現用指標把兩個字串連線起來:

1、第一步,建立一個新專案和.c檔案,見下圖,轉到下面的步驟。

2、第二步,執行完上面的操作之後,定義變數型別,見下圖的**,轉到下面的步驟。

3、第三步,執行完上面的操作之後,呼叫cpy函式,見下圖的**,轉到下面的步驟。

4、第四步,執行完上面的操作之後,定義一個函式,瞭解並定義變數型別,見下圖的**,轉到下面的步驟。

5、第五步,執行完上面的操作之後,使用for語句和if語句來進行判斷,見下圖的**,轉到下面的步驟。

6、第六步,執行完上面的操作之後,新增一個字串終止符,並將其輸出到main函式中,見下圖的標記的**,轉到下面的步驟。

7、第七步,執行完上面的操作之後,執行並得出結果,兩個字串連線起來了,見下圖。這樣,就解決了這個問題了。

9樓:龍__鳳

#include

void main()

10樓:匿名使用者

void main()

for (;*q != '\0';)

*sp = '\0';

printf("連線後的字串為:%s\n",s);}

11樓:匿名使用者

#include

#include

void main()

12樓:匿名使用者

第一個for後加分號隔開試試

c語言指標越界問題,大神指教!!!

13樓:程式設計大亨

*p是指向int型別的指標,a為陣列首地址,這些理解都是對的,但是,p沒有被初始化

啊,你能直接是用沒有被初始化的變數嘛,那肯定是不行的啊.

所以正確的做法先給p繫結堆記憶體就可以這樣寫了.

#include

using namespace std;

int main()

;*p = array;

cout << (*p)[1] << endl;

system("pause");

return 0;

}編譯完全通過.這裡不貼出來了.點我頭像**.

14樓:

int *p;   //這樣寫才對

int a[10];

p = a;

c語言 指標問題? 輸出結果是亂碼… 不知道那裡錯了…求指教…**是寫的**。

15樓:匿名使用者

做輸入操作的時候p指標已經指向了a陣列的末尾,在做輸出的時候並沒有將p指標重新指向a的開始位置,所以才會亂碼,輸出之前重新指向a的首地址就可以了

C語言指標陣列的問題,請教各位大神

第一點,兩個按照順序儲存,所以噸輸出後輸出米,車,長 第二點,sizeof arrayquantityunit 這句話的結果是4,因為指標是4個位元組 請注意sizeof的使用,sizeof計算出來的結果是按照byte計算的,一個指標變數在32位系統中佔4byte 32bit sizeof計算出來的...

C語言指標的作用有哪些c語言中用指標的好處有哪些?

指標的用途非常廣泛,比如如果你想通過函式改變一個變數的值,就得用指標而不能用值傳遞。還有在很多時候變數,特別是物件的資料量實在太大,程式設計師就會用指標來做形參,只需要傳遞一個地址就行,大大提高了效率。簡單地說指標就是指向變數和物件的地址。基本說明 1 在計算機中,所有的資料都是存放在儲存器中的。一...

C語言空指標,C語言中的空指標是什麼意思?

空指標是其值為null或0的指標,在下認為稱之為 指向 null或 指向 0的指標都是錯誤說法,因為若有int a,p a 則稱指標p指向了a,並不能說指標p指向了 a,只能說p的值是 a,不然就大錯特錯了。沒有指向 即沒有賦值 或指向的目標已銷燬了的指標稱為懸浮指標 可能人們據說的野指標也是它吧 ...