p2->next=NULL這里錯(cuò)了,因?yàn)樽詈笠粋€(gè)struct是p1,p1的next才是沒有賦值的
我表示不太認(rèn)為這個(gè)鏈表打印方式比較好,我認(rèn)為打印這個(gè)鏈表應(yīng)該用遞歸會比較好一點(diǎn)
這時(shí)候,我將char name[10]和int card的位置調(diào)換,結(jié)果用gdb的時(shí)候果然在name后面進(jìn)行了填充,另外,gdb查看內(nèi)存時(shí)要先x/31d 地址,才能x/32d 地址,不然會將多個(gè)字節(jié)串聯(lián)
2018-11-29
我試了一下,我的struct有
int card 4字節(jié),
char name[10],10字節(jié)
char school[15],15字節(jié)
按理說,name后面你應(yīng)該填充兩個(gè)字節(jié),school填充一個(gè)字節(jié),但實(shí)際上三個(gè)字節(jié)都填充再了school后面,這是我用gdb查出來的
int card 4字節(jié),
char name[10],10字節(jié)
char school[15],15字節(jié)
按理說,name后面你應(yīng)該填充兩個(gè)字節(jié),school填充一個(gè)字節(jié),但實(shí)際上三個(gè)字節(jié)都填充再了school后面,這是我用gdb查出來的
2018-11-29
才學(xué)指針硬是看了半天哎
老師講的很好的哦,自己看一遍沒寫出來
a&1為什么能判斷奇偶性呢。
二進(jìn)制只有最低位是奇數(shù)取值為1,其他位都是偶數(shù)(2^0 , 2^1, 2^2,或者你理解8421也可以)。 偶數(shù)+偶數(shù)=偶數(shù)這肯定不需要多說。奇數(shù)+偶數(shù)=奇數(shù)。二進(jìn)制轉(zhuǎn)十進(jìn)制,就是各個(gè)取值相加。
所以我們看看1的8位二進(jìn)制: 0000 0001。
所以當(dāng) a&1的時(shí)候是 1 表明最低位存在值,也就是1。而其他位置(2,4,8,16,32,64,128) 都是偶數(shù),轉(zhuǎn)為十進(jìn)制的時(shí)候,其他位數(shù)相加都是偶數(shù),如果存在最后一位,也就是要+1,那就會變成奇數(shù),反之還是偶數(shù)。
二進(jìn)制只有最低位是奇數(shù)取值為1,其他位都是偶數(shù)(2^0 , 2^1, 2^2,或者你理解8421也可以)。 偶數(shù)+偶數(shù)=偶數(shù)這肯定不需要多說。奇數(shù)+偶數(shù)=奇數(shù)。二進(jìn)制轉(zhuǎn)十進(jìn)制,就是各個(gè)取值相加。
所以我們看看1的8位二進(jìn)制: 0000 0001。
所以當(dāng) a&1的時(shí)候是 1 表明最低位存在值,也就是1。而其他位置(2,4,8,16,32,64,128) 都是偶數(shù),轉(zhuǎn)為十進(jìn)制的時(shí)候,其他位數(shù)相加都是偶數(shù),如果存在最后一位,也就是要+1,那就會變成奇數(shù),反之還是偶數(shù)。
2018-11-02
老師英語說錯(cuò)很多 head就說錯(cuò)了