摘要:
1 #import 2 3 int main(int argc, const char * argv[]) 4 { 5 6 @autoreleasepool { 7 8 // insert code here... 9 NSLog(@"Hello, World!"); 10 11 } 12 return 0; 13 } 1.程序的入口点:main函数 2.@autoreleasepool: OC是不支持垃圾回收的,需要开发人... 阅读全文
摘要:
枚举:一、枚举的概念: 比如,你可以用一个枚举类型的变量来表示季节,因为季节只有4种可能的取值:春天、夏天、秋天、冬天。 二、枚举类型的定义: 一般形式为:enum 枚举名 {枚举元素1,枚举元素2,⋯⋯}; enum Season {spring, summer, autumn, winter}; 三、枚举变量的定义: 前面只是定义了枚举类型,接下来就可以利用定义好的枚举类型定义变量。 跟结构体一样,有3种方式定义枚举变量 1.先定义枚举类型,再定义枚举变量 enum Season {spring, summer, autumn, winte... 阅读全文
摘要:
一、什么是结构体: 数组:内部的元素是相同类型的。 结构体:允许内部的元素是不同类型的。 二、结构体的定义: 1.定义形式: 结构体内部的元素,也就是组成成分,我们一般称为"成员"。 结构体的一般定义形式为: 1 struct 结构体名{ 2 3 类型名1 成员名1; 4 5 类型名2 成员名2; 6 7 ⋯⋯ 8 9 类型名n 成员名n; 10 11 }; struct是关键字,是结构体类型的标志。 2... 阅读全文
摘要:
一、在Java中,全局变量的定义没有严格的位置规定: 二、在C语言中,全局变量定义的位置是有限制的: 默认情况下,一个函数不可以访问在它后面定义的全局变量 第1种办法:将变量a定义在main函数的前面 第2种办法:在main函数前面对变量a进行提前声明 三、重复定义同一个变量: 重复定义同一个变量a代表着同一个变量。 四、不同源文件中的同名变量: 假如在另一个源文件中也有全局变量int a;,那么这两个源文件的所有全局变量int a;都代表着同一个变量。 五、static关键字: 但很多时候,我们并不想让源文件中的全局变量跟其他源文件共享,相当于... 阅读全文
摘要:
一、extern与函数:(外部函数) 如果一个程序中有多个源文件(.c),编译成功会生成对应的多个目标文件(.obj),这些目标文件还不能单独运行,因为这些目标文件之间可能会有关联,比如a.obj可能会调用c.obj中定义的一个函数。将这些相关联的目标文件链接在一起后才能生成可执行文件。 先来理解2个概念: 1.外部函数:如果在当前文件中定义的函数允许其他文件访问、调用,就称为外部函数。C语言规定,不允许有同名的外部函数。 2.内部函数:如果在当前文件中定义的函数不允许其他文件访问、调用,只能在内部使用,就称为内部函数。C语言规定不同的源文件可以有同名的内部... 阅读全文
摘要:
一、变量的作用域: 1.局部变量 2.全局变量 二、变量的存储类型 * 变量的存储类型就是指变量存储在什么地方。 有3个地方可以用于存储变量:普通内存、运行时堆栈、硬件寄存器。 变量的存储类型决定了变量何时创建、何时销毁以及它的值能保持多久,也就是决定了变量的生命周期。 * C语言根据变量的存储类型的不同,可以把变量分为:自动变量、静态变量、寄存器变量。 1.自动变量: 1> 定义:自动变量是存储在堆栈中的。 2> 哪些是自动变量:被关键字auto修饰的局部变量都是自动变量,但是极少使用这个关键字,基本上是废的,... 阅读全文
摘要:
一、基本概念: 其实我们早就有接触文件包含这个指令了, 就是#include,它可以将一个文件的全部内容拷贝到另一个文件中。 二、一般形式: 1.第1种形式#include :直接到C语言库函数头文件所在的目录中寻找文件 2.第2种形式 #include "文件名" :系统会先在源程序当前目录下寻找,若找不到,再到操作系统的path路径中查找,最后才到C语言库函数头文件所在目录中查找 三、使用注意: 1.#include指令允许嵌套包含,比如a.h包含b.h,b.h包含c.h,但是不允许递归包含,比如 a.h 包含 b.h,b.h 包含 a.h。 2.使用#incl... 阅读全文
摘要:
条件编译的概念: 在很多情况下,我们希望程序的其中一部分代码只有在满足一定条件时才进行编译,否则不参与编译(只有参与编译的代码最终才能被执行),这就是条件编译。 一、基本用法: 1 #if 条件1 2 ...code1... 3 #elif 条件2 4 ...code2... 5 #else 6 ...code3... 7 #endif 1> 如果条件1成立,那么编译器就会把#if 与 #elif之间的code1代码编译进去(注意:是编译进去,不是执行,很平时用的if-else是不一样的) ... 阅读全文
摘要:
预处理指令简介: 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译 2.为了区分预处理指令和一般的C语句,所有预处理指令都以符号"#"开头,并且结尾不用分号 3.预处理指令可以出现在程序的任何位置,它的作用范围是从它出现的位置到文件尾。习惯上我们尽可能将预处理指令写在源程序开头,这种情况下,它的作用范围就是整个源程序文件 4.C语言提供的预处理指令主要有:宏定义、文件包含、条件编译 宏定义可以分为2种: 不带参数的宏定义 和 带参数的宏定义.. 阅读全文
摘要:
一、返回指针的函数: 1 // 将字符串str中的小写字母变成大写字母,并返回改变后的字符串 2 // 注意的是:这里的参数要传字符串变量,不能传字符串常量 3 char * upper(char *str) { 4 // 先保留最初的地址。因为等会str指向的位置会变来变去的。 5 char *dest = str; 6 7 // 如果还不是空字符 8 while (*str != '\0') { 9 // 如果是小写字母 10 if (*str... 阅读全文