指针使用汇总

  指针使用汇总
   例1:
            struct Data {
                uint32 year;
                uint32 month;
                uint32 data;
                uint32 day;
            };
            typedef struct Data SData;
            SData data;
           
            void testMain()
            {
                SData  *psData;
               
                psData = &data;                /* 正确.指向结构首地址. */
               
psData = data;                   /* 错误.编译报错 */
               
psData = ( SData  * )data;   /* 错误.编译报错 */
                psData->year = 2007;
               
            }
  结论1:结构变量的变量名,不表示变量的地址,强制转换都不行,说明结构变量的变量名本质上就不是表示一个数值,所以,必须使用取址运算符。
   例2:
        struct Data {
            uint32 year;
            uint32 month;
            uint32 data;
            uint32 day;
        };
        typedef struct Data SData;
        SData data[] =
        {
            2001,1,1,1,
            2001,1,1,2,
            2001,1,1,3,
            2001,1,1,4,
            2001,1,1,5,
            2001,1,1,6,
        };
        void testMain()
        {
            SData  *psData;
           
            psData = &data[0];            
/* 正确.指向数组首地址 */
           
psData = data;                   /* 正确.指向数组首地址 */
            psData = ( SData  * )&data; /* 正确.指向数组首地址 */
            //
psData = &data;              /* 错误.编译报错 */
            psData->year = 2007;
            psData++;
            psData->year = 2007;
            psData++;
            psData->year = 2007;
            psData++;
            psData->year = 2007;
        }
 
结论2:数组名指向数组的首地址,对数组名取址运算,仍然表示该数组的首地址。

测试环境:ADS1.2编译器,ARM,LPC2214,软件仿真环境
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值