第四章是学习C语言的特性。
函数:定义时必须为形参指定类型,接着调用函数时必须为形参传入参数值,而且传入的参数值必须与形参类型保持一致。若希望一个函数没有返回值,一定要明确用void声明没有返回值。OC传参方式只有一种,值传递。其实质是当系统开始执行函数时,系统为形参执行初始化,就是把实参变量的值赋给函数的形参变量,函数里操作的并不是实际的实参变量。
递归:一定要向已知方向递归。
带参数的宏定义:应先将参数用圆括号括起来。
指针与数组:&取地址运算符,*取变量运算符。将数组变量作为参数传入函数时,在函数中对数组元素所做的修改也会影响原数组元素的值,这是因为数组变量本身也是指针。数组变量的本质就是指针变量,该指针变量指向第一个数组元素。不要尝试对数组变量(指向数组首地址的常量)进行重新赋值,这种赋值语句都会导致错误。同时还要注意区分数组与字符结合的不同意义区别。
结构体:使用结构体类型定义变量时不要忘记了struct关键字。使用type语句的意义在于更加可读,使程序简化等。
块:块的定义与函数非常类似,但只是定义了一个匿名函数,差异为:块必须以^开头,块的返回值类型可以省略,无需指定名字等。
本章对C特性进行介绍,对于已经学过C的人来说,是一种巩固提高,比较基础应该牢记熟练应用,难点在于指针,指针运算,函数,与指针这些模块,应好好理解掌握。
函数:定义时必须为形参指定类型,接着调用函数时必须为形参传入参数值,而且传入的参数值必须与形参类型保持一致。若希望一个函数没有返回值,一定要明确用void声明没有返回值。OC传参方式只有一种,值传递。其实质是当系统开始执行函数时,系统为形参执行初始化,就是把实参变量的值赋给函数的形参变量,函数里操作的并不是实际的实参变量。
递归:一定要向已知方向递归。
带参数的宏定义:应先将参数用圆括号括起来。
指针与数组:&取地址运算符,*取变量运算符。将数组变量作为参数传入函数时,在函数中对数组元素所做的修改也会影响原数组元素的值,这是因为数组变量本身也是指针。数组变量的本质就是指针变量,该指针变量指向第一个数组元素。不要尝试对数组变量(指向数组首地址的常量)进行重新赋值,这种赋值语句都会导致错误。同时还要注意区分数组与字符结合的不同意义区别。
结构体:使用结构体类型定义变量时不要忘记了struct关键字。使用type语句的意义在于更加可读,使程序简化等。
块:块的定义与函数非常类似,但只是定义了一个匿名函数,差异为:块必须以^开头,块的返回值类型可以省略,无需指定名字等。
本章对C特性进行介绍,对于已经学过C的人来说,是一种巩固提高,比较基础应该牢记熟练应用,难点在于指针,指针运算,函数,与指针这些模块,应好好理解掌握。