黑马程序员技术交流社区

标题: ios基础第9天 [打印本页]

作者: sunyongnan    时间: 2015-8-13 23:19
标题: ios基础第9天
一、条件编译
1、条件编译是什么?
是一个根据条件编译代码的预处理指令。
2、条件编译有什么用?
可以让一段代码只能在满足条件才编译,提高编译效率。
3、条件编译怎么用?
通用:#if 条件表达式、#elif 条件表达式、 #else
与宏定义相关:#ifdef 宏名:表示定义了宏 ;#ifndef 宏名:表示没有定义宏
#endif :结束条件编译,注意一定要加。
4、条件编译什么时候用?
当一些代码只需要在一定条件下编译时。
5、条件编译有什么特点?
      1)条件编译不能访问需要编译后才能执行的代码。
      2)条件编译不需要用大括号,所以必须加上结束标识,否则涵盖下面的所有代码。
      3)条件编译一般跟宏定义配合使用,防止重复包含及交叉包含。
二、typedef
1、typedef是什么?
是一个C语言的一个关键字。
2、typedef有什么用?
可以给一个数据类型取一个别名,方便使用。
3、typedef怎么用?
定义:typedef  类型 别名;
如:typedef long int Lint;  表示给一个long int 类型取一个别名为Lint
则:long int a=5; 与Lint a=5;二者等效
4、typedef什么时候用?
当希望给一个类型取一个别名时(比较类型较复杂等),可以用,方便理解调用。
5、typedef有什么特点?
     1)定义位置没有限制,函数内外都可以。
     2)作用域为定义位置开始至所处作用域结束,类似于变量。
     3)可以用于任意数据类型。
     4)别名具有数据类型的含义,这是跟宏定义最大区别。
三、static与extern
1、static与extern是什么?
是C语言的关键字。
2、static与extern有什么用?
控制一个变量或函数的作用域。
3、static与extern怎么用?
修饰函数:static 返回值 函数名()[];表示函数为内部函数只能被文本访问。
extern 返回值 函数名()[];表示函数为外部函数能被程序的所有文件访问。(默认)
修饰全局变量:static:表示变量只能被当前文件访问;extern:所有文件共享。(默认)
修饰局部变量:static:表示延长变量生命周期至程序结束;extern:声明一个全局变量。
4、static与extern有什么特点?
     1)外部函数不同文件中也不能重名,但内部函数可以。
     2)同类型全局变量可以重复定义,但在内存中只有一份。
     3)可以在函数内声明一个全局变量,但要使用必须在函数外定义;extern:只是声明。
     4)static修饰定义局部变量,则这个局部变量生命周期延长至程序结束,但作用域不变。
四、auto与const
1、auto与const是什么?
是C语言的关键字。
2、auto与const有什么用?
auto:用于定义一个能自动回收的临时变量,这个变量在作用域内用完后会自动撤销。
const:用于定义一个常量,这个常量在常量区,且在内存中仅有一份,且不能改变。
3、auto与const怎么用?
auto:数组类型 变量名;(默认所有局部变量都是这个修饰,可以省略)。
注意:1)static修饰的除外;2)全局变量除外。
const:数据类型 变量名=值;
注意:一旦定义,值就固定不能被改变。
五、goto
1、goto是什么?
是C语言的关键字。
2、goto有什么用?
让指令能够不受条件跨越执行,简化代码。
3、goto怎么用?
4、goto什么时候用?
需要不受限制进行指令跳转时(如:跳出多层循环嵌套)。
六、reister与volatile
1、reister与volatile是什么?
是C语言的关键字。
2、reister与volatile有什么用?
reister:表示让程序优先把这个数据存在寄存器中。
volatile:表示让编译器不要去优化代码,不能用缓存,每次使用都必须去内存中获取。
3、reister与volatile怎么用?
修饰变量:reister 数据类型 变量名;     volatile 数据类型 变量名;
4、reister与volatile什么时候用?
reister:如果一个变量使用相当频繁,且占用内存又不是很大,可以使用。
volatile:如果需要让计算机严格按写的指令去执行,且能关注变量每次值的变化,这个时候可以使用,则编译器不会对执行指令作优化。
七、递归
1、递归是什么?
是指在函数的定义中使用函数自身的方法,说白了就是一个函数自己调用自己。
2、递归有什么用?
实现一些反复执行的操作。
3、递归怎么用?
int add(int a){
    if(a==0)return 0;
    return a+add(a-1);
}
4、递归什么时候用?
当有一些反复的操作,但没有告知明确次数的时候。
5、递归有什么特点?
可以用循环实现递归的所有操作。
八、文件操作
1、文件操作是什么?
是对文件或文件内容的输入(读)与输出(写),文件的操作的函数在<stdio.h>中声明。
2、文件操作怎么用?
     1)打开一个文件并确定操作的方式:fopen("文件","打开方式");
          函数会返回一个文件的指针(即结构体的指针),FILE *
     2)开始操作:读或写。常用的文件读写函数有三类:
          字符读写函数:char c=fgetc(文件指针)读和fputc(字符,文件指针)写;
          字符串读写函数:fgets(字符缓存,数量,文件指针)读和fputs(字符缓存,文件指针)写;
          数据块(二进制)读写函数:fread(数据容器,单个数据字节数,总数,文件指针)读;
                                               fwrite(数据容器,单个数据字节数,总数,文件指针)写;
     3)操作完成,关闭文件:fclose(文件的指针)
3、文件操作有什么特点?
      1)用打开文件的模式限定操用得方式。
      2)打开操作文件后一定要关闭文件,否则容器引起内存泄露。
      3)输入与输出是相对操作者而言。

作者: WPeng    时间: 2015-8-14 00:01
这么多笔记,手下收下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2