靜態(tài)鏈表問題
p = p->next 改為p = p++為什么運(yùn)行結(jié)果不正確,p += sizeof(a) 這樣也不正確求解
#include?<stdio.h>
struct?weapon?{
????int?price;
????int?atk;
????struct?weapon?*?next;
};
int?main(){
????struct?weapon?a,b,c,*head,*p;
????a.price?=?100;
????a.atk?=?100;
????b.price?=?200;
????b.atk?=?200;
????c.price?=?300;
????c.atk?=?300;
????head?=?&a;
????a.next?=?&b;
????b.next?=?&c;
????c.next?=?NULL;
????p?=?head;
????while(p?!=?NULL){
????????printf("%d,%d\n",p->price,p->atk);
????????p?=?p->next;
????}
}
2016-07-18
按我的理解結(jié)構(gòu)體指針傳遞的應(yīng)該是結(jié)構(gòu)體的首地址,你把p++后指向的是12個(gè)字節(jié)后的地址,并非下一個(gè)節(jié)點(diǎn)的首地址,而是下一個(gè)節(jié)點(diǎn)的指針地址,肯定無法讀出數(shù)據(jù),你可以試試在創(chuàng)建結(jié)構(gòu)體的時(shí)候?qū)⒅羔槍懺诘谝粋€(gè)位置,等同于結(jié)構(gòu)體首地址,應(yīng)該可以。
2016-07-18
沒錯(cuò)啊,全復(fù)制編譯后可正常運(yùn)行!
2016-07-18
按我的理解結(jié)構(gòu)體指針傳遞的應(yīng)該是結(jié)構(gòu)體的首地址,你把p++后指向的是12個(gè)字節(jié)后的地址,并非下一個(gè)節(jié)點(diǎn)的首地址,而是下一個(gè)節(jié)點(diǎn)的指針地址,肯定無法讀出數(shù)據(jù),你可以試試在創(chuàng)建結(jié)構(gòu)體的時(shí)候?qū)⒅羔槍懺诘谝粋€(gè)位置,等同于結(jié)構(gòu)體首地址,應(yīng)該可以。