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