已采納回答 / RuthlessPotato丶
你把struct weapon *p你把它換成int *p,你看懂嗎?定義struct類型的地址,其實struct也是一種類型了,C語言中給出了另一種構(gòu)造數(shù)據(jù)類型——“結(jié)構(gòu)”,不能只有int啥的是類型,struct也是類型。
已采納回答 / 慕標6387096
#define pd(a) printf("輸入的整數(shù)是:%d",a)#define pf(a) printf("輸入的小數(shù)是:%d",a),在main中只要調(diào)用pd(3),pf(2.5)就能打印了
2016-10-15
已采納回答 / abcba1
這個問題很容易理解, 奇數(shù)的2進制,最低位(也就是最右邊的那一位)一定為1,而偶數(shù)一定為0.?然后你再用1去與這個奇數(shù)或者偶數(shù)做位運算。就很容易看出來了。
2016-10-10
已采納回答 / Hisos
你是直接打印的next的地址啊,計算機怎么知道你要打印哪個結(jié)構(gòu)體的next?修改為p &a.next
已采納回答 / 122138763238273
如果只聲明指針變量, 它的值是一個未知的, 不是默認為NULL.
已采納回答 / kming
沒什么意義吧,只是初始化,后面還要從新指向p1
已采納回答 / xsxxsx
同一塊地址,p1=p2是為了讓p2保存p1的內(nèi)容,好可以給p1賦予新的內(nèi)存地址,而保證上一塊地址不會丟失
已采納回答 / spiritwyc
p2->next的含義是“指針”,指針指向下一個對象的地址,所以p2->next指向下一個對象p1,這是正確的,對象里保存的屬性才是代碼需要用到的,而指針只不過指向下一個取屬性的對象,僅僅是指路功能;p2->next=p1->next,就變成指針指向指針,這樣根據(jù)p2的指針取到的東西,并不是p1對象,而變成p1的下一個結(jié)點的指針,那就等于跳過了p1了,邏輯就不對了,所以p2的指針初衷就是要指向p1這個對象的。
已采納回答 / 泡面吃胖的孫同學
按我的理解結(jié)構(gòu)體指針傳遞的應(yīng)該是結(jié)構(gòu)體的首地址,你把p++后指向的是12個字節(jié)后的地址,并非下一個節(jié)點的首地址,而是下一個節(jié)點的指針地址,肯定無法讀出數(shù)據(jù),你可以試試在創(chuàng)建結(jié)構(gòu)體的時候?qū)⒅羔槍懺诘谝粋€位置,等同于結(jié)構(gòu)體首地址,應(yīng)該可以。
已采納回答 / HuangQingFeng
#include <stdio.h>?struct nam{? ? char *name[20]; ?//用指針? ? int old;? ? float height;? ? struct nam * next;};int main(){? ? struct nam a,b, *head;? ? a.name[0]="李"; ?//第一個地址? ? a.old=16;? ? a.height=70.2;? ? b.name[0]="林";? ? b.old=21;? ? b.height=6...