您的位置:首页 > 编程语言 > C语言/C++

C语言及OC语言初期学习心得

2015-07-22 08:37 302 查看
2015-7-22,周三
经过一个星期C语言的学习,对基础知识语法已经有了一定的了解和认识。同时通过这三天对OC语言的学习,更加了解编程语言都是相融相通的。虽然 OC语言的语法和之前接触的C,JAVA有很大的区别,但是在讲师的解析和引导下,还是比较容易接受的。
学习知识的过程不仅仅是对知识的认识,简单的认识是远远不够的。为了今后更好的开发,要对学过的知识加以理解、辨析,通过代码去实现,加深认知。
以下是我在这段时间在学习的心得和总结。
一、数组的四种遍历方法:
根本两种方法
·1)指针
·2)数组游标
具体实现如下,21~24 ,共四种



二、函数指针
强调“指针”的作用
三、自增自减 和 指针 组合使用



打印结果



【重点】延伸
·1)自增、自减 和 指针 的组合使用
·2)关于 数组a 的地址



四、数组 和 链表
数组的优缺点:
·优点:数组是连续的,查找起来快捷方便
·缺点:数组的插入和删除十分麻烦
链表的优缺点:
链表每个节点存储两个数组,一个是存储的数据,另一个是下一跳的目标地址
·优点:链表插入和删除方便
·缺点:遍历效率相对数组低
五、关于数组地址 +1
例如,对 &a + 1 相当于 对 a 的地址上 + ( sizeof(a) * sizeof(int) ) —> +( 6 * 4)
即对 a 的地址加上一个 数组a 所占用的空间长度



零、结构体、枚举
一、作用域 —【 { } 】
即 { }
名字的 作用域 是指 在程序中可以使用该名字的部分
简而言之:在 { } 内声明的通常只能在 { } 内使用。
(若在其他地方用 extern 再次声明也可使用)
二、各种 变量 的特点和区别
1.自动变量 —【auto】
2.静态变量 — 【static】
静态变量,保留上一次值。
静态变量的生命周期和引用程序绑定。
静态变量写在函数内或者函数外,他的生命周期并没有受到作用域的限制。
如果卸载函数的外面,其他的函数也可以使用这个变量。如果写在函数里面,只能在对应的函数中使用
存储区域: 静态存储区。
3.局部变量
4.全局变量
全局变量可以多次声明(用extern),表示同一个变量,但是不能多次定义
5.静态全局变量

三、结构体 — 【struct】
1.概念
定义一个结构体,只是说明了该类型的组成情况,并没有给它分配存储空间
结构体占用的内存空间是其成员所占内存之和,而且各成员在内存中按定义的顺序依次排列
2.定义
1)定义方式【3种】
【易错】·定义的类型名,首字母必须大写
·结构体{ };大括号结尾必须有 “ ; ”

2)嵌套定义,但是不能对自身进行递归调用

3.初始化 及 使用
不可用 42 行的方式进行初始化(注意区别数组的初始化)
“ . ” 是运算符
四、结构体指针
1.因为每个结构体变量都有自己的存储空间和地址,因此指针可以指向结构体变量
2.结构体指针使用的方式【3种】
【重点】第三种方式 — 26行
printf(“name is %s\n”, p -> name);

五、枚举 — 【enum】
1.枚举就是用来定义一系列类型的
2.枚举值其实就是数值,枚举值默认是从 0 开始的,然后依次在上一个值的基础上累加
3.定义方式【3种】
参照结构体的 3 种定义方式(类似)

六、typedef
1.使用 typedef 关键字为各种已知数据类型定义一个新的名字(别名)
【易错】首字母必须大写

【易错】
1.定义结构体的结尾必须加 ;
2.结构体,枚举 字母必须大写
3. typedef 和 define 之间的区别

OC语言
二、OC 和 C 的一些区别
1.导入头文件
·C: 使用 #include <stdio.h> 导入头文件
·OC: 使用 #import <Foundation/Foundation.h> 导入头文件
其中 Foundation 中包含 C 的头文件
2.字符串
·在OC中使用%@格式化,打印一个字符串对象

三、类和对象的区别
类是对象的类型
不同于 int 等基本类型, 类这种类型具有方法

四、属性声明【3种】
1)public: 公共的,所有类都可以使用
2)protected: 受保护的,定义的类及其子类可以使用
3)private: 私有的,只能在定义的类中使用

五、定义类的步骤
1)定义类名
2)编写类的属性—> 实例变量
3)编写类的方法—> 方法

------------------------------------------------------------------------------









内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息