C面試題小程序剖析


#include <stdio.h>
int main(int argc,char * argv[])
{
        int a[3][2]={(0,1),(2,3),(4,5)};
        int b[3][2]={{0,1},{2,3},{4,5}};
        int *p;
        int *q;
        p=a[0];
        q=b[0];
        printf("%d\n",p[0]);
        printf("%d\n",q[0]);
}

(gdb) p a
$1 = {{1, 3}, {5, 0}, {0, 0}}      ----->逗號表達式將二維數組a 賦值成了 { 1 ,3 ,5  ,0,0,0}
(gdb) p b
$2 = {{0, 1}, {2, 3}, {4, 5}}
(gdb) 

執行結果  1  0 

平時寫程序幾乎不用逗號表達式竟然沒看懂,還需要用gdb調試一下,鄙視一下自己吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章