int a;
  int *p = &a;
  int a[5];
  int *p = a;
对指针 p 赋值的时候,为什么一个是对 a 取地址,一个是变量 a 就行了
     1 
                    
                    dtgio      2018-03-02 16:38:38 +08:00 via iPhone 
                    
                    因为第一个 a 是 int,另一个 a 是 int[] 
                (。)  | 
            
     2 
                    
                    Alchemistxxd      2018-03-02 16:43:01 +08:00 
                    
                    因为第二个的内存布局是 int *a 
                 | 
            
     3 
                    
                    hxndg      2018-03-02 16:45:33 +08:00 
                    
                    你需要首先解释变量 a 是个什么东西, 
                然后再考虑你问的这个问题。  | 
            
     4 
                    
                    xrui      2018-03-02 16:45:46 +08:00 via Android 
                    
                    数组名是数组首元素的地址 
                 | 
            
     5 
                    
                    johnniang      2018-03-02 16:46:39 +08:00 via Android    第二个 a 本身就是地址 
                 | 
            
     6 
                    
                    thomaswang   OP @xrui 怎么你一说,我就懂了呢 
                 | 
            
     7 
                    
                    xrui      2018-03-02 16:51:56 +08:00 via Android 
                    
                    @thomaswang 我也就书上概念背得熟而已😂多看看书就好啦~ 
                 | 
            
     8 
                    
                    aheadlead      2018-03-02 16:54:20 +08:00 via iPhone 
                    
                    @thomaswang 因为他说的对而且准确 
                 | 
            
     9 
                    
                    hxndg      2018-03-02 17:39:12 +08:00 
                    
                    @thomaswang  
                如果前面的你看不懂,你可能需要去看一些基础的 c 教程,或者拿 gdb 追一边代码  | 
            
     10 
                    
                    bibizhang      2018-03-02 17:57:35 +08:00    数组名是数组第一个元素的地址,这是王八的屁股-龟腚。 
                 | 
            
     11 
                    
                    but0n      2018-03-02 22:42:55 +08:00 
                    
                    数组和指针之间有着蜜汁关系, c 语言圣经里有讲过 
                 | 
            
     12 
                    
                    thomaswang   OP @but0n 圣经是那本呢 
                 | 
            
     13 
                    
                    sfqtsh      2018-03-03 00:28:44 +08:00 via Android    数组名 a 是个变量,它的类型是数组类型 int [5],并不是指针类型。数组名传递时会 退化 为指针:该指针的类型是数组包含的元素类型,这里是 int ;该指针指向数组的第一个元素。 
                 |