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,不然就大錯特錯了。沒有指向 即沒有賦值 或指向的目標已銷燬了的指標稱為懸浮指標 可能人們據說的野指標也是它吧 ...