面试篇C语言精华 
 

1、面向过程:分析解决问题所需要的步骤,然后用函数把这些步骤一步一步实 现。

面向对象:直接描述客观世界的对象及其相互关系。现实世界中任何实体都 可以看作是对象,对象之间通过消息相互作用,利用面向对象编程,我们只关心 借口,不关心怎样实现。
2、C++的三个特性:继承、封装和多态。

  继承:一个对象直接使用另一个对象的属性和方法。继承可以使子类具有父
类的各种属性和方法,而不需要再次编写相同的代码。
  封装:在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制属性
的读和修改的访问级别。目的是:增强安全性和简化编程。

多态:接口多种不同的实现方式。同一个操作作用于不同的对象上可以有不 同的解释,并产生不同的执行效果。
3、sizeof

是个运算符,用来判断数据类型以及表达式长度。字节数数的计算是
在编译时进行的。

Sizeof(类型说明符、数组名或表达式)

4、typedef:用来为复杂的声明定义简单的别名。它本身是个存储类的关键字。

Typedef int newname:

#define:宏定义又称为宏代换、宏替换。三大预处理功能之一,另外两个是
文件包含和条件编译。

5、enum:

枚举类型,在实际问题中,有些变量的取值范围被限制在一个有限的范
围内。为了说明这些量,引入了新的数据类型。

6、Struct、class 构造函数理解:

struct 和 class 最本质的区别就是默认的访问控制:
Struct 默认的是 public,而 class 默认的是 private。
Struct:结构体类型,用于存放具有不同数据类型。
Class:类,是构造程序的基本单位。

7、static:关键字。

声明静态变量,存储在静态内存中。作用:保持变量持久和
隐藏。静态局部变量在程序执行到该对象的声明处的时被首次初始化,以后的函
数调用不再进行初始化。
8、Const:关键字。它限定一个变量不允许被改变。作用:在一定程度上可以提
高程序的安全性和可靠性。对别人理解程序也有一些帮助。同时,可以很方便地
进行参数的调整和修改。

9、C 和 C++内存分配:

(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序这个运行期间都存在。

(2)在栈上创建。在执行函数时,由编译器自动分配和释放。

(3)动态内存分配。由程序员自己决定分配,程序在运行时候用 malloc 或

new 申请任意字节内存,然后由程序员自己负责在何时用 free 或 delete 释放内存。
这样动态内存的生存周期由程序员决定,使用起来比较灵活。

char *p;
p=(char*)malloc(size);
.......
free(p):

int *p=new int;
........
delete p;

10、指针和引用:
引用:引用就是某一个变量的一个别名,对引用的操作与对变量的直 接操作

完全一样。Inta;int & ra=a; 定义引用 ra,它是变量 a 的引用。

区别:

(1)引用不能为空,指针可以为空。

(2)引用不可以改变指向,指针可以改变指向。
(3)引用的大小是所指向的变量的大小,而指针是指本身的大小。
(4)引用仅仅是个别名,而指针是个实体。

11、函数的返回值:

一个函数只能有一个返回值,超过一个返回值的函数可以使用指针或结构体变量。

12、extern:

声明外部变量或函数,已标示变量或函数的定义在别的文件中,提
示编译器遇到此变量或函数时,在其他模块中寻找其定义。

13、Char*p=”sdfsdf”; 这种方法初始化的是常量字符串,所以 p 不能修改字符串
的内容。

Char p[]=”sdfsdf”;

P=”sdfsdf”;

Char p[]=”sdfsdf”;

这两个都是变量,可以修改。

指针在 32 位系统下都占 4 个字节。

14、数组名和指针:

  数组名不是指针,数组名表示的是数组首元素的地址,是一个常量。

  指针存放的是一个变量的地址,它本身是个变量。

15、指针函数与函数指针:

  • 指针函数:本身是一个函数,是返回值为某一类型指针的函数。
    函数指针:本身是一个指针,该指针用来存放函数的地址。
    函数指针的作用:一是实现面向对象中的多态性;二是回调函数。

16、同步与异步:

  • 同步:发出一个功能调用时,在没有得到结果之前,该调用不返回。
  • 也就是必须一件一件事做,等前一件事做完之后才能做下一件事。
  • 异步:发出一个功能调用时,调用者不能立即得到结果。实际处理这
  • 个调用的部件在完成后,通过状态、通知和回调来通知调用者。

17、文件操作:

FILE *fp: fp=fopen(文件名,使用文件方式); ..........
fclose();

 

ios开发——面试篇C语言精华的更多相关文章

  1. ios开发——面试篇(一)

    面试篇之内存管理与多线程 简述OC中内存管理机制.­­­­­与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为 ...

  2. iOS开发UI篇—Quartz2D使用(绘制基本图形)

    iOS开发UI篇—Quartz2D使用(绘制基本图形) 一.简单说明 图形上下文(Graphics Context):是一个CGContextRef类型的数据 图形上下文的作用:保存绘图信息.绘图状态 ...

  3. iOS开发数据库篇—SQLite简单介绍

    iOS开发数据库篇—SQLite简单介绍 一.离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等. 说明:离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式 (1 ...

  4. iOS开发数据库篇—SQL

    iOS开发数据库篇—SQL 一.SQL语句 如果要在程序运行过程中操作数据库中的数据,那得先学会使用SQL语句 1.什么是SQL SQL(structured query language):结构化查 ...

  5. iOS开发数据库篇—SQLite的应用

    iOS开发数据库篇—SQLite的应用 一.简单说明 在iOS中使用SQLite3,首先要添加库文件libsqlite3.dylib和导入主头文件. 导入头文件,可以使用库中的函数(是纯C语言的) 二 ...

  6. IOS开发数据库篇—SQLite模糊查询

    IOS开发数据库篇—SQLite模糊查询 一.示例 说明:本文简单示例了SQLite的模糊查询 1.新建一个继承自NSObject的模型 该类中的代码: // // YYPerson.h // 03- ...

  7. iOS开发Swift篇—(一)简单介绍

    iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C ...

  8. iOS开发UI篇—Quartz2D简单使用(二)

    iOS开发UI篇—Quartz2D简单使用(二) 一.画文字 代码: // // YYtextview.m // 04-写文字 // // Created by 孔医己 on 14-6-10. // ...

  9. iOS开发多线程篇—创建线程

    iOS开发多线程篇—创建线程 一.创建和启动线程简单说明 一个NSThread对象就代表一条线程 创建.启动线程 (1) NSThread *thread = [[NSThread alloc] in ...

随机推荐

  1. XA事务处理

    XA接口详解 X/Open XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁.事务管理器控制 ...

  2. Android功能模块化之生成验证码Bitmap

    Android生成验证码Bitmap,主要使用Canvas绘制,实现的步骤如下: 1.生成验证码.主要采用java的随机函数生成序号,然后对应获取预设的Char数组的值,生成长度固定的验证码: 2.C ...

  3. Android 翻页效果 电子书

    转载请注明来自: 5进制空间-android区 相信做电子书的同学,都遇到过翻页动画的需求吧,如果你不满足与点击滑动翻页的话,这边文章应该能够帮助到你. 先上个效果图: 效果还是很不错的,不过与ibo ...

  4. How to easily create popup menu for DevExpress treelist z

    http://www.itjungles.com/how-to-easily-create-popup-menu-for-devexpress-treelist.html Adding popup m ...

  5. 《Python 学习手册4th》 第九章 元组、文件及其他

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ...

  6. 不知道帐号密码的情况下完全重装Mac Min的OS X10.7系统

    现状: 1.原系统OS X 10.7 2.老账号不知道密码 3.Mac小盒子 目的: 1.删除老账号 2.更新系统到10.9以上 尝试过程1: 1.按住option键 + 开机 2.选择“磁盘工具” ...

  7. 关于如果修改 ie 浏览器 文本模式

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/html4/stric ...

  8. bzoj 2751 [HAOI2012]容易题(easy)(数学)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2751 [题意] m个位置,已知每个位置的可能取值,问所有可能情况的每个位置的乘积的和. ...

  9. C++问题-Qt Visual Studio Add-in

    问题现象:用VS打开其他人的项目提示如下:Qt Visual Studio Add-in...中间全TMD的英文,我就省略...QT版本不对,需要修改QT版本. 问题原因:占时不明,因为我是开发Del ...

  10. [C语言 - 4] 指针

    存放变量地址的变量 int a = 1; int *p; p = &a;   在64位系统中,占用8个字节 直接引用 间接引用 *p : 指针指向的变量的值 不要使用未初始化的指针     1 ...