C9_指针高级

指针高级---结构体指针

定义指针变量时需要注意类型与初始值

指针所占内存空间只与操作系统有关, 操作系统位数小得内存不会分配出大地址

*p取数据问题 *p=*&language=language等于结构体变量名

注意操作符的优先级问题‘.’的优先级大于‘*’的 优先级,所以当用指针取结构体成员的时候一定要注意(*p)中()的使用,另外,为了方便,结构体指针有一种特殊的操作方式,就是特别的操作符->

结构体数组的指针

结构体指针指向结构体数组的第一个元素的首地址,也就是结构名字所代表的地址,p = array;

访问结构体元素的成员的方式有三种:

1. 数组[索引]

2.结构体名.

3.结构体指针->

注意:结构体指针变量里面存储的是地址, 类型是结构体类型,所以赋值的时候不可以使结构体变量中得成员地址赋给结构体指针,如果实在想赋值的话,可以将成员地址进行强制转换。例如 平p = (struct student *)stu.name

宏是一个完全替换的过程,注意是完全替换,原封不动的替换, 在编译前进行,宏后面不加分号

宏分为无参宏和有参宏

无参宏:一般多使用在接口中

有参宏:#define MAX(A, B)(A > B ? A : B)

宏的写法:两种,一种是全部用大写,一种是k+驼峰法

条件编译

如果被定义

#ifdef

执行下面的代码

xxxxxxxxx

否则

#else

执行下面代码

xxxxxxxxx

#endif

另外一种写法

#ifndef

xxxxxxxxx

#else

xxxxxxxxxx

endif

//// 最常用的一种

//#if iOS7

//// 代码1

//#define state 20

//#else

//// 代码2

//#define state 0

//#endif


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值