摘要:
1.NSBundle 1> 一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹 2> 利用mainBundle就可以访问软件资源包中的任何资源 3> 模拟器应用程序的安装路径 /Users/aplle/资源库/Application Support/iPhone Simula 阅读全文
posted @ 2016-03-28 20:44
lance.xiang
阅读(131)
评论(0)
推荐(0)
摘要:
iOS开发UI篇—Button基础 一、简单说明 一般情况下,点击某个控件后,会做出相应反应的都是按钮 按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置 二、按钮的三种状态 normal(普通状态) 默认情况(Default) 对应的枚举常量:UIControlStat 阅读全文
posted @ 2016-03-28 20:41
lance.xiang
阅读(162)
评论(0)
推荐(0)
摘要:
阅读全文
posted @ 2016-03-28 20:39
lance.xiang
阅读(89)
评论(0)
推荐(0)
摘要:
//let possibleNumber = "123" //let convertedNumber = Int(possibleNumber) //// convertedNumber 被推测为类型 "Int?", 或者类型 "optional Int" //因为该构造器可能会失败,所以它返回一个 阅读全文
posted @ 2016-03-28 17:33
lance.xiang
阅读(213)
评论(0)
推荐(0)
摘要:
//: Playground - noun: a place where people can play import Cocoa var str = "Hello, playground" let cat = "?";print(cat) let minVale = uint8.min let m 阅读全文
posted @ 2016-03-28 17:30
lance.xiang
阅读(171)
评论(0)
推荐(0)
摘要:
Objective-C Runtime Objective-C Runtime 原文出处: 南峰子的技术博客 前面几篇基本介绍了runtime中的大部分功能,包括对类与对象、成员变量与属性、方法与消息、分类与协议的处理。runtime大部分的功能都是围绕这几点来实现的。 本章的内容并不算重点,主要针 阅读全文
posted @ 2016-03-28 17:27
lance.xiang
阅读(177)
评论(0)
推荐(0)
摘要:
1.新建一个“本地仓库” $ git init 2.配置仓库 》告诉git你是谁 git config user.name lnj 》告诉git怎么联系你 git config user.email lnj@itcast.cn 》上面一种配置方式是一次性的配置, 会配置到被管理文件的。git文件夹下 阅读全文
posted @ 2016-03-28 15:38
lance.xiang
阅读(158)
评论(0)
推荐(0)
摘要:
Awk学习笔记 整理:Jims of 肥肥世家 <jims.yang@gmail.com> Copyright © 2004 本文遵从GPL协议,欢迎转载、修改、散布。 第一次发布时间:2004年8月6日 Table of Contents 1. awk简介2. awk命令格式和选项 2.1. aw 阅读全文
posted @ 2016-03-28 15:27
lance.xiang
阅读(155)
评论(0)
推荐(0)
摘要:
01. 源代码管理工具概述(PPT) * 源代码管理工具的作用: # 能追踪一个项目从诞生一直到定案的过程 # 记录一个项目的所有内容变化 # 方便地查阅特定版本的修订情况 * 如果是团队开发,使用源代码管理工具是强制性的! * 如果是单人开发,也强烈建议现在就开始使用源代码管理工具 * 使用源代码 阅读全文
posted @ 2016-03-28 15:10
lance.xiang
阅读(199)
评论(0)
推荐(0)
摘要:
01. 为什么要做静态库 1> 国内的企业,掌握有核心技术,同时是又希望更多的程序员来使用其技术,因此采用"闭源"的方式开发使用例如:百度地图,友盟,JPush等 2> 在企业开发中,一些核心技术或者常用框架,出于安全性和稳定性的考虑,也会提供静态库给程序员使用 02. 静态库的特点 .a + .h 阅读全文
posted @ 2016-03-28 15:05
lance.xiang
阅读(486)
评论(0)
推荐(0)
摘要:
1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 **ppDb // 数据库实例 ); 2.执行任何SQL语句 int sqlite3_exec( sqlite3*, // 一个打开的数据库实例 const cha 阅读全文
posted @ 2016-03-28 15:01
lance.xiang
阅读(151)
评论(0)
推荐(0)
摘要:
iOS CocoaPods安装和使用图解 2015-09-25 23:55 by jiangys, 2920 阅读, 0 评论, 收藏, 编辑 Cocoapods安装步骤 1.升级Ruby环境 sudo gem update --system 如果Ruby没有安装,请参考 如何在Mac OS X上安 阅读全文
posted @ 2016-03-28 14:59
lance.xiang
阅读(169)
评论(0)
推荐(0)
摘要:
Foundation—基础框架。框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础。 如果要想使用foundation框架中的数据类型,那么包含它的主头文件就可以了。 即#import<foundation/foundation.h> 补充:core foundati 阅读全文
posted @ 2016-03-28 14:56
lance.xiang
阅读(117)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> // NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue int main() { // 结构体 >OC对象 CGPoint p = CGPointMake(10, 10); // 将结构体转为Value对象 阅读全文
posted @ 2016-03-28 12:11
lance.xiang
阅读(86)
评论(0)
推荐(0)
摘要:
// // main.m // 08-NSDate // // Created by apple on 13-8-12. #import <Foundation/Foundation.h> int main() { // 09/10/2011 NSString *time = @"2011/09/1 阅读全文
posted @ 2016-03-28 12:10
lance.xiang
阅读(104)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> int main() { // @20 将 20包装成一个NSNumber对像 NSArray *array = @[ @{@"name" : @"jack", @"age" : @20}, @{@"name" : @"rose", 阅读全文
posted @ 2016-03-28 12:09
lance.xiang
阅读(86)
评论(0)
推荐(0)
摘要:
// // main.m // 06-NSDictionary // /* 集合 1.NSArray\NSMutableArray * 有序 * 快速创建(不可变):@[obj1, obj2, obj3] * 快速访问元素:数组名[i] 2.NSSet\NSMutableSet * 无序 3.NSD 阅读全文
posted @ 2016-03-28 12:08
lance.xiang
阅读(112)
评论(0)
推荐(0)
摘要:
/* NSSet和NSArray的对比 1> 共同点 * 都是集合,都能存放多个OC对象 * 只能存放OC对象,不能存放非OC对象类型(基本数据类型:int、char、float等,结构体,枚举) * 本身都不可变,都有一个可变的子类 2> 不同点 * NSArray有顺序,NSSet没有顺序 */ 阅读全文
posted @ 2016-03-28 12:07
lance.xiang
阅读(120)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> // 计算文件的代码行数 /* path : 文件的全路径(可能是文件夹、也可能是文件) 返回值 int :代码行数 */ NSUInteger codeLineCount(NSString *path) { // 1.获得文件管理 阅读全文
posted @ 2016-03-28 12:06
lance.xiang
阅读(107)
评论(0)
推荐(0)
摘要:
// // main.m // 03-NSArray // #import <Foundation/Foundation.h> #import "Person.h" /* NSArray :不可变数组 NSMutableArray : 可变数组 */ int main() { // @[] 只创建不 阅读全文
posted @ 2016-03-28 12:03
lance.xiang
阅读(84)
评论(0)
推荐(0)
摘要:
// // main.m // 02-NSString // #import <Foundation/Foundation.h> /* NSString : 不可变字符串 NSMutableString : 可变字符串 */ int main() { NSMutableString *s1 = [N 阅读全文
posted @ 2016-03-28 12:02
lance.xiang
阅读(61)
评论(0)
推荐(0)
摘要:
// // main.m // 01-结构体 #import <Foundation/Foundation.h> int main() { /* NSRange(location length) NSPoint\CGPoint NSSize\CGSize NSRect\CGRect (CGPint 阅读全文
posted @ 2016-03-28 12:00
lance.xiang
阅读(104)
评论(0)
推荐(0)
摘要:
/* 1.协议的定义 @protocol 协议名称 <NSObject> // 方法声明列表.... @end 2.如何遵守协议 1> 类遵守协议 @interface 类名 : 父类名 <协议名称1, 协议名称2> @end 2> 协议遵守协议 @protocol 协议名称 <其他协议名称1, 其 阅读全文
posted @ 2016-03-28 11:57
lance.xiang
阅读(91)
评论(0)
推荐(0)
摘要:
// // main.m #import <Foundation/Foundation.h> /* block要掌握的东西 1> 如何定义block变量 int (^sumBlock)(int, int); void (^myBlock)(); 2> 如何利用block封装代码 ^(int a, i 阅读全文
posted @ 2016-03-28 11:56
lance.xiang
阅读(117)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> #import "Person.h" #import "Dog.h" /* 当两端循环引用的时候,解决方案: 1> ARC 1端用strong,另1端用weak 2> 非ARC 1端用retain,另1端用assign */ int 阅读全文
posted @ 2016-03-28 11:54
lance.xiang
阅读(70)
评论(0)
推荐(0)
摘要:
* ARC的判断准则:只要没有强指针指向对象,就会释放对象 1.ARC特点 1> 不允许调用release、retain、retainCount 2> 允许重写dealloc,但是不允许调用[super dealloc] 3> @property的参数 * strong :成员变量是强指针(适用于O 阅读全文
posted @ 2016-03-28 11:51
lance.xiang
阅读(101)
评论(0)
推荐(0)
摘要:
一、计数器的基本操作 1> retain : +1 2> release :-1 3> retainCount : 获得计数器 二、set方法的内存管理 1> set方法的实现 - (void)setCar:(Car *)car { if ( _car != car ) { [_car releas 阅读全文
posted @ 2016-03-28 11:48
lance.xiang
阅读(144)
评论(0)
推荐(0)
摘要:
1.autorelease的基本用法 1> 会将对象放到一个自动释放池中 2> 当自动释放池被销毁时,会对池子里面的所有对象做一次release操作 3> 会返回对象本身 4> 调用完autorelease方法后,对象的计数器不变 2.autorelease的好处 1> 不用再关心对象释放的时间 2 阅读全文
posted @ 2016-03-28 11:47
lance.xiang
阅读(99)
评论(0)
推荐(0)
摘要:
/* 1.@class的作用:仅仅告诉编译器,某个名称是一个类 @class Person; // 仅仅告诉编译器,Person是一个类 2.开发中引用一个类的规范 1> 在.h文件中用@class来声明类 2> 在.m文件中用#import来包含类的所有东西 3.两端循环引用解决方案 1> 一端用 阅读全文
posted @ 2016-03-28 11:44
lance.xiang
阅读(85)
评论(0)
推荐(0)
摘要:
/* 作者:MJ 描述: 时间: 文件名:Person.h */ #import <Foundation/Foundation.h> /* 1.set方法内存管理相关的参数 * retain : release旧值,retain新值(适用于OC对象类型) * assign : 直接赋值(默认,适用于 阅读全文
posted @ 2016-03-28 11:42
lance.xiang
阅读(67)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> #import "Car.h" #import "Person.h" #import "Student.h" #import "Dog.h" /* 内存管理代码规范: 1.只要调用了alloc,必须有release(autorele 阅读全文
posted @ 2016-03-28 11:37
lance.xiang
阅读(93)
评论(0)
推荐(0)
摘要:
1.你想使用(占用)某个对象,就应该让对象的计数器+1(让对象做一次retain操作) 2.你不想再使用(占用)某个对象,就应该让对象的计数器-1(让对象做一次release) 3.谁retain,谁release 4.谁alloc,谁release */ #import <Foundation/F 阅读全文
posted @ 2016-03-28 11:32
lance.xiang
阅读(80)
评论(0)
推荐(0)
摘要:
1.方法的基本使用 1> retain :计数器+1,会返回对象本身 2> release :计数器-1,没有返回值 3> retainCount :获取当前的计数器 4> dealloc * 当一个对象要被回收的时候,就会调用 * 一定要调用[super dealloc],这句调用要放在最后面 2 阅读全文
posted @ 2016-03-28 11:28
lance.xiang
阅读(60)
评论(0)
推荐(0)
摘要:
SEL其实是对方法的一种包装,将方法包装成一个SEL类型的数据,去找对应的方法地址。找到方法地址就可以调用方法其实消息就是SEL */ #import <Foundation/Foundation.h> #import "Person.h" int main() { Person *p = [[Pe 阅读全文
posted @ 2016-03-28 11:25
lance.xiang
阅读(146)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> #import "Person.h" void test9() { // 输出当前函数名 NSLog(@"%s\n", __func__); } int main() { // 输出行号 NSLog(@"%d", __LINE__) 阅读全文
posted @ 2016-03-28 11:23
lance.xiang
阅读(220)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> #import "Person.h" #import "Student.h" #import "GoodStudent.h" /* 1.当程序启动时,就会加载项目中所有的类和分类,而且加载后会调用每个类和分类的+load方法。只会调 阅读全文
posted @ 2016-03-28 11:21
lance.xiang
阅读(105)
评论(0)
推荐(0)
摘要:
使用注意: 1.分类只能增加方法,不能增加成员变量 2.分类方法实现中可以访问原来类中声明的成员变量 3.分类可以重新实现原来类中的方法,但是会覆盖掉原来的方法,会导致原来的方法没法再使用 4.方法调用的优先级:分类(最后参与编译的分类优先) --> 原来类 --> 父类 */ #import <F 阅读全文
posted @ 2016-03-28 11:16
lance.xiang
阅读(102)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> #import "Person.h" #import "Student.h" int main(int argc, const char * argv[]) { @autoreleasepool { Student *p = [[S 阅读全文
posted @ 2016-03-28 11:13
lance.xiang
阅读(137)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> #import "Person.h" #import "Student.h" // 构造方法:用来初始化对象的方法,是个对象方法,-开头 // 重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值 /* 重写构造方法的 阅读全文
posted @ 2016-03-28 11:10
lance.xiang
阅读(190)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> #import "Person.h" void test(id d) { } int main(int argc, const char * argv[]) { @autoreleasepool { Person *p = [Per 阅读全文
posted @ 2016-03-28 11:07
lance.xiang
阅读(117)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> @interface Person : NSObject { int _age; // int age; int _height; double _weight; NSString *_name; } // @property:可以 阅读全文
posted @ 2016-03-28 11:04
lance.xiang
阅读(97)
评论(0)
推荐(0)
摘要:
#import "Point2D.h" #import <Foundation/Foundation.h> // 圆 @interface Circle : NSObject { // 半径 double _radius; // 圆心 // double _x; // double _y; Poin 阅读全文
posted @ 2016-03-28 10:59
lance.xiang
阅读(155)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> @interface Person : NSObject { //char *_name; NSString *_name; } @end int main() { /* // 最简单的创建字符串的方式 NSString *str 阅读全文
posted @ 2016-03-28 10:54
lance.xiang
阅读(5)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> /* 多态 1.没有继承就没有多态 2.代码的体现:父类类型的指针指向子类对象 3.好处:如果函数\方法参数中使用的是父类类型,可以传入父类、子类对象 4.局限性: 1> 父类类型的变量 不能 直接调用子类特有的方法。必须强转为子类 阅读全文
posted @ 2016-03-28 10:52
lance.xiang
阅读(91)
评论(0)
推荐(0)
摘要:
/* 僵尸 跳跃僵尸、舞王僵尸、铁桶僵尸 */ #import <Foundation/Foundation.h> /* super的作用 1.直接调用父类中的某个方法 2.super处在对象方法中,那么就会调用父类的对象方法 super处在类方法中,那么就会调用父类的类方法 3.使用场合:子类重写 阅读全文
posted @ 2016-03-28 10:50
lance.xiang
阅读(83)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> /* 1.继承的好处: 1> 抽取重复代码 2> 建立了类之间的关系 3> 子类可以拥有父类中的所有成员变量和方法 2.注意点 1> 基本上所有类的根类是NSObject */ /********Animal的声明*******/ 阅读全文
posted @ 2016-03-28 10:49
lance.xiang
阅读(98)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> @interface Person : NSObject { int _age; } - (void)setAge:(int)age; - (int)age; - (void)test; @end @implementation P 阅读全文
posted @ 2016-03-28 10:43
lance.xiang
阅读(114)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> /* 对象方法 1> 减号 - 开头 2> 只能由对象来调用 3> 对象方法中能访问当前对象的成员变量(实例变量) 类方法 1> 加号 + 开头 2> 只能由类(名)来调用 3> 类方法中不能访问成员变量(实例变量) 类方法的好处和 阅读全文
posted @ 2016-03-28 10:40
lance.xiang
阅读(111)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> @interface Student : NSObject { // 成员变量尽量不要用@public // @public int age; //@public // 只读(readonly):只允许外界访问我的no,不允许外界修 阅读全文
posted @ 2016-03-28 10:34
lance.xiang
阅读(119)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> @interface Car : NSObject { @public int speed; } - (void)run; @end @implementation Car - (void)run { NSLog(@"速度为%d的车 阅读全文
posted @ 2016-03-28 10:30
lance.xiang
阅读(90)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> /* 计算器类 方法: 1> 返回 π 2> 计算某个整数的平方 3> 计算两个整数的和 */ @interface JiSuanQi : NSObject // 方法名:pi - (double)pi; // OC方法中,一个参数 阅读全文
posted @ 2016-03-28 10:28
lance.xiang
阅读(189)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> typedef enum { SexMan, SexWoman } Sex; typedef struct { int year; int month; int day; } Date; typedef enum { ColorBl 阅读全文
posted @ 2016-03-28 10:27
lance.xiang
阅读(69)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> @interface Car : NSObject {// 成员变量 @public int wheels; int speed; } - (void)run; @end @implementation Car - (void)ru 阅读全文
posted @ 2016-03-28 10:26
lance.xiang
阅读(58)
评论(0)
推荐(0)
摘要:
/* 人 类名:Person 属性(成员变量\实例变量):体重、年龄 行为(方法):走路、吃 */ #import <Foundation/Foundation.h> /* 1.类的声明 * 成员变量 * 方法的声明 */ @interface Person : NSObject { @public 阅读全文
posted @ 2016-03-28 10:25
lance.xiang
阅读(68)
评论(0)
推荐(0)
摘要:
/* 类名:Car 属性:轮胎个数、时速(速度) 行为:跑 */ // 因为使用了NSObject #import <Foundation/Foundation.h> // 完整地写一个函数:函数的声明和定义(实现) // 完整地写一个类:类的声明和实现 // 1.类的声明 // 声明对象的属性、行 阅读全文
posted @ 2016-03-28 10:24
lance.xiang
阅读(66)
评论(0)
推荐(0)
摘要:
#import <Foundation/Foundation.h> BOOL test(BOOL mybool) { return NO; } int main() { BOOL b = YES; BOOL b2 = NO; BOOL b3 = 1; // YES BOOL b4 = 0; // N 阅读全文
posted @ 2016-03-28 10:20
lance.xiang
阅读(84)
评论(0)
推荐(0)
摘要:
/* 1.#import的用途: 1> 跟#include一样,拷贝文件的内容 2> 可以自动防止文件的内容被重复拷贝 2.#import <Foundation/NSObjCRuntime.h> NSObjCRuntime.h中有NSLog函数的声明 3.Foundation框架头文件的路径 1> 阅读全文
posted @ 2016-03-28 10:19
lance.xiang
阅读(78)
评论(0)
推荐(0)
摘要:
一、基本数据类型 1.int 1> long int、long:8个字节 %ld 2> short int、short:2个字节 %d %i 3> unsigned int、unsigned:4个字节 %zd 4> signed int、signed、int:4个字节 %d %i 2.float\d 阅读全文
posted @ 2016-03-28 10:15
lance.xiang
阅读(92)
评论(0)
推荐(0)
摘要:
/* 1.作用:给已经存在的类型起一个新的名称 2.使用场合: 1> 基本数据类型 2> 指针 3> 结构体 4> 枚举 5> 指向函数的指针 */ #include <stdio.h> typedef int MyInt; typedef MyInt MyInt2; // 给指针类型char *起 阅读全文
posted @ 2016-03-28 10:14
lance.xiang
阅读(104)
评论(0)
推荐(0)
摘要:
/* 1.所有的预处理指令都是以#开头 2.预处理指令分3种 1> 宏定义 2> 条件编译 3> 文件包含 3.预处理指令在代码翻译成0和1之前执行 4.预处理的位置是随便写的 5.预处理指令的作用域:从编写指令的那一行开始,一直到文件结尾,可以用#undef取消宏定义的作用 6.宏名一般用大写或者 阅读全文
posted @ 2016-03-28 10:12
lance.xiang
阅读(207)
评论(0)
推荐(0)
摘要:
#include <stdio.h> // main 主函数入口 int main() { enum Sex { Man, Woman, Unkown}; // 0男 1女 -1不详 //int sex = 3; //enum Sex s = Unkown; // 1.定义枚举类型 enum Sea 阅读全文
posted @ 2016-03-28 10:07
lance.xiang
阅读(90)
评论(0)
推荐(0)
摘要:
#include <stdio.h> struct Student { int age; int no; }; // 如果结构体作为函数参数,只是将实参结构体所有成员的值对应地赋值给了形参结构体的所有成员 // 修改函数内部结构体的成员不会影响外面的实参结构体 void test(struct St 阅读全文
posted @ 2016-03-28 10:06
lance.xiang
阅读(609)
评论(0)
推荐(0)
摘要:
#include <stdio.h> /* 1.指向结构体的指针的定义 struct Student *p; 2.利用指针访问结构体的成员 1> (*p).成员名称 2> p->成员名称 */ int main() { struct Student { int no; int age; }; // 阅读全文
posted @ 2016-03-28 10:03
lance.xiang
阅读(28)
评论(0)
推荐(0)
摘要:
/* 数组:只能由多个相同类型的数据构成 结构体:可以由多个不同类型的数据构成 */ #include <stdio.h> int main() { //int ages[3] = {[2] = 10, 11, 27}; //int ages[3] = {10, 11, 29}; // 1.定义结构 阅读全文
posted @ 2016-03-28 10:02
lance.xiang
阅读(115)
评论(0)
推荐(0)
摘要:
#include <stdio.h> char *test(); int main() { char *name = test(); printf("name=%s\n", name); return 0; } char *test() { return "rose"; } #include <st 阅读全文
posted @ 2016-03-28 09:55
lance.xiang
阅读(79)
评论(0)
推荐(0)
摘要:
一、指针变量的定义 1. 格式:变量类型 *指针变量名; 2. 举例:int *p; char *p2; 3. 注意:定义变量时的*仅仅是指针变量的象征 二、利用指针变量简单修改其他变量的值 1.指向某个变量 int a; int *p; p = &a; 或者 int *p = &a; 2.修改所指 阅读全文
posted @ 2016-03-28 09:51
lance.xiang
阅读(96)
评论(0)
推荐(0)
摘要:
#include <stdio.h> /* (不包括\0) 编写一个int string_len(char *s),返回字符串s的字符长度 */ int string_len(char *s); int main() { //char *name = "itlance"; // 男 \u434\u4 阅读全文
posted @ 2016-03-28 09:50
lance.xiang
阅读(74)
评论(0)
推荐(0)
摘要:
#include <stdio.h> /* 1.数组元素的访问方式 int ages[5]; int *p; p = ages; 1> 数组名[下标] ages[i] 2> 指针变量名[下标] p[i] 3> *(p + i) 2.指针变量+1,地址值究竟加多少,取决于指针的类型 int * 4 c 阅读全文
posted @ 2016-03-28 09:49
lance.xiang
阅读(131)
评论(0)
推荐(0)
摘要:
#include <stdio.h> int main() { int a = 10; int *p = &a; int **pp = &p; // a = 20; // *p = 20; /* (*pp) == p *(*pp) == *p = a **pp == *p = a */ **pp = 阅读全文
posted @ 2016-03-28 09:41
lance.xiang
阅读(108)
评论(0)
推荐(0)
摘要:
#include <stdio.h> void change(int); int main() { /* int a = 90; change(&a); printf("a=%d\n", a); */ // 变量类型 变量名; // 格式:变量类型 *变量名; // 定义了一个指针变量p // 指针 阅读全文
posted @ 2016-03-28 09:35
lance.xiang
阅读(107)
评论(0)
推荐(0)
摘要:
/* 编写一个函数char_contains(char str[],char c), 如果字符串str中包含字符c则返回数值1,否则返回数值0 */ #include <string.h> #include <stdio.h> // 可读性 -> 性能 -> 精简(重构) int char_cont 阅读全文
posted @ 2016-03-28 09:30
lance.xiang
阅读(457)
评论(0)
推荐(0)
摘要:
#include <stdio.h> int main() { //char name[] = {'l', 'a', 'c', 'H', 's', 't', '\0'}; char name[] = "lacHst"; name[3] = 'H'; /* int size = sizeof(name 阅读全文
posted @ 2016-03-28 09:29
lance.xiang
阅读(99)
评论(0)
推荐(0)
摘要:
#include <stdio.h> // 数组作为函数参数,可以省略元素个数 // 数组作为函数参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组 void change(int array[]) { //printf("array==%p\n", array); arr 阅读全文
posted @ 2016-03-28 09:24
lance.xiang
阅读(87)
评论(0)
推荐(0)
摘要:
#include <stdio.h> /* 提示用户输入5个学生的成绩,算出平均分并且输出 */ int main() { // 1.定义一个数组来存储成绩 int scores[5]; // 2.提示输入成绩 // 用来存储总分 int sum = 0; for (int i = 0; i<5; 阅读全文
posted @ 2016-03-28 09:22
lance.xiang
阅读(269)
评论(0)
推荐(0)
摘要:
#include <stdio.h> int main() { // 使用注意 // 都是正确写法 //int ages[5] = {10 , 11, 12, 67, 56}; //int ages[5] = {10, 11}; //int ages[5] = {[3] = 10, [4] = 11 阅读全文
posted @ 2016-03-28 09:19
lance.xiang
阅读(73)
评论(0)
推荐(0)
摘要:
#include <stdio.h> int main() { //0000 0000 0000 0000 0000 0000 0000 1001 int a = 9; // 0100 0001 char c = 'A'; //printf("%c\n", 67); //printf("%d\n", 阅读全文
posted @ 2016-03-28 09:18
lance.xiang
阅读(110)
评论(0)
推荐(0)
摘要:
/* 写一个函数,用来输出整数在内存中的二进制形式 */ #include <stdio.h> void printBinary(int number); int main() { /* 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0 阅读全文
posted @ 2016-03-28 09:16
lance.xiang
阅读(230)
评论(0)
推荐(0)
摘要:
#include <stdio.h> int main() { /* 按位与 & 10101010000 00000100000 00000000000 10111011 10101101 10101001 1001 0101 0001 */ /* 按位或 | 1001 0101 1101 */ / 阅读全文
posted @ 2016-03-28 09:15
lance.xiang
阅读(133)
评论(0)
推荐(0)
摘要:
#include <stdio.h> /* %d\%i 十进制形式输出整数 %c 输出字符 %p 输出地址 %f 输出小数 %o 八进制形式输出整数 %x 十六进制形式输出整数 */ int main() { // 默认情况下,就是十进制 int number = 12; // 二进制(0b或者0B 阅读全文
posted @ 2016-03-28 09:11
lance.xiang
阅读(143)
评论(0)
推荐(0)
摘要:
#include <stdio.h> /* %d\%i 十进制形式输出整数 %c 输出字符 %p 输出地址 %f 输出小数 %o 八进制形式输出整数 %x 十六进制形式输出整数 */ int main() { // 默认情况下,就是十进制 int number = 12; // 二进制(0b或者0B 阅读全文
posted @ 2016-03-28 09:11
lance.xiang
阅读(128)
评论(0)
推荐(0)
摘要:
一、选择结构 1.if 1> 结构 if (条件) { } else if (条件2) { } else if (条件3) { } else { } 2> 特点 * 同一时刻,只有一个大括号里面的代码会被执行 2.switch 1> 结构 switch (数值) { case 数值1: break; 阅读全文
posted @ 2016-03-28 09:00
lance.xiang
阅读(173)
评论(0)
推荐(0)
摘要:
#include <stdio.h> /* 1.什么情况下定义函数:添加一个常用的新功能 2.函数的定义格式 返回值类型 函数名(形式参数列表) { 函数体 } 3.定义函数需要明确的东西 1> 起一个有意义的函数名 2> */ int printLine() { printf(" \n"); re 阅读全文
posted @ 2016-03-28 08:58
lance.xiang
阅读(116)
评论(0)
推荐(0)
摘要:
#include <stdio.h> /* break: 1.使用场合 1> switch语句:退出整个switch语句 2> 循环结构:退出整个循环语句 * while * do while * for 2.注意点 只对最近的循环结构有效 continue: 1.使用场合 循环结构:结束当前这次的 阅读全文
posted @ 2016-03-28 08:56
lance.xiang
阅读(167)
评论(0)
推荐(0)
摘要:
#include <stdio.h> int main() { for (int i = 1; i<=4; i++) { //printf("好友列表%d\n", i + 1); printf("好友列表%d\n", i); /* printf(" 好友1\n"); printf(" 好友2\n") 阅读全文
posted @ 2016-03-28 08:54
lance.xiang
阅读(85)
评论(0)
推荐(0)
摘要:
#include <stdio.h> int main() { /* 不要随便在for()后面写分号 for (int i=0; i<5; i++); { printf("哈哈\n"); }*/ /* 错误:变量a的作用域不明确 如果要在循环体中定义新的变量,必须用大括号{}包住 for (int 阅读全文
posted @ 2016-03-28 08:53
lance.xiang
阅读(118)
评论(0)
推荐(0)
摘要:
/* for (语句1; 条件; 语句2) { 循环体 } 语句1:初始化语句 语句2:增量语句(执行完循环体后再执行的语句) 1.for一开始就会执行一次语句1(整个for循环只会执行一次) 2.判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立 */ # 阅读全文
posted @ 2016-03-28 08:50
lance.xiang
阅读(96)
评论(0)
推荐(0)
摘要:
#include <stdio.h> int main() { /* while (10) { printf("哈哈哈哈\n"); }*/ /* int a = 10; // while (a>0); 死循环 while (a>0) { a--; printf("哈哈哈\n"); }*/ // 最简 阅读全文
posted @ 2016-03-28 08:49
lance.xiang
阅读(144)
评论(0)
推荐(0)
摘要:
/* 题目:计算1~100中所有3的倍数的个数 */ #include <stdio.h> int main() { // 记录3的倍数的个数 int count = 0; // 记录当前检查的数值 int number = 0; while (number < 100) { number++; / 阅读全文
posted @ 2016-03-28 08:46
lance.xiang
阅读(2163)
评论(0)
推荐(0)
摘要:
#include <stdio.h> /* if (条件) { } while (条件) { 循环体 } 运行原理 1.如果一开始条件就不成立,永远不会执行循环体 2.如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立...... break 直接结束整个while循环 continu 阅读全文
posted @ 2016-03-28 08:44
lance.xiang
阅读(563)
评论(0)
推荐(0)
摘要:
/* 输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式) A:90~100 score/10 == 9、10 B:80~89 score/10 == 8 C:70~79 score/10 == 7 D:60~69 score/10 == 6 E:0~60 */ #include 阅读全文
posted @ 2016-03-28 08:40
lance.xiang
阅读(124)
评论(0)
推荐(0)
摘要:
#include <stdio.h> int main() { /* if (0) { printf("A\n"); } else { printf("B\n"); }*/ /* int a = 1044343; 比较大小时,常量值放左边,变量放右边 //if (a = 0) if (0 == a) 阅读全文
posted @ 2016-03-28 08:38
lance.xiang
阅读(25)
评论(0)
推荐(0)
摘要:
#include <stdio.h> int main() { /* int a = 10; int b = 11; // 条件成立就返回1,真 // 条件不成立就返回0,假 int result = b >= a; printf("%d\n", result); */ //int a = 2>3= 阅读全文
posted @ 2016-03-28 08:32
lance.xiang
阅读(101)
评论(0)
推荐(0)
摘要:
#include <stdio.h> int main() { //int size = sizeof(10); //int size = sizeof 10.9; int a = 10; //int size = sizeof(a); //int size = sizeof a; int size 阅读全文
posted @ 2016-03-28 08:28
lance.xiang
阅读(924)
评论(0)
推荐(0)
摘要:
运算符的优先级(从高到低) 优先级 描述 运算符 1 括号 ()、[] 2 正负号 +、- 3 自增自减,非 ++、--、! 4 乘除,取余 *、/、% 5 加减 +、- 6 移位运算 <<、>>、>>> 7 大小关系 >、>=、<、<= 8 相等关系 ==、!= 9 按位与 & 10 按位异或 ^ 阅读全文
posted @ 2016-03-28 08:26
lance.xiang
阅读(98)
评论(0)
推荐(0)
摘要:
#include <stdio.h> int main() { // 定义一个变量,用来保存用户输入的整数 int number; // scanf函数只接受变量的地址 // scanf函数是一个阻塞式的函数,等待用户输入 // 用户输入完毕后,就会将用户输入的值赋值给number变量 // 函数调 阅读全文
posted @ 2016-03-28 08:20
lance.xiang
阅读(257)
评论(0)
推荐(0)
摘要:
#include <stdio.h> /* 1.内存寻址由大到小,优先分配内存地址比较大的字节给变量 2.变量越先定义,内存地址就越大 3.取得变量的地址:&变量名 4.输出地址:%p 5.一个变量一定先进行初始化,才能使用 */ int main() { // 内存寻址由大到小 int a = 1 阅读全文
posted @ 2016-03-28 08:19
lance.xiang
阅读(98)
评论(0)
推荐(0)
摘要:
#include <stdio.h> int play() { return 0; } int main() { play(); printf("第一个C语言程序\n"); return 0; } 阅读全文
posted @ 2016-03-28 08:15
lance.xiang
阅读(19)
评论(0)
推荐(0)
摘要:
// // main.c // 变量类型 // // Created by 向春晓 on 15/11/13. // Copyright © 2015年 个人. All rights reserved. // //一, 变量的作用域 // c 语言根据作用域的不同,将变量分为局部变量和全局变量。 // 阅读全文
posted @ 2016-03-28 08:10
lance.xiang
阅读(108)
评论(0)
推荐(0)
摘要:
一、面向对象和封装 面向对象的三大特性:封装(成员变量)、继承和多态 在OC语言中,使用@interface和@implementation来处理类。 @interface就好像暴露在外面的时钟表面,像外界提供展示以及接口。@implementation就好像隐藏在时钟内部的构造实现,把具体的实现封 阅读全文
posted @ 2016-03-28 07:57
lance.xiang
阅读(66)
评论(0)
推荐(0)
摘要:
1.Xcode自带头文件的路径 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/System/Library/Fra 阅读全文
posted @ 2016-03-28 07:49
lance.xiang
阅读(145)
评论(0)
推荐(0)

浙公网安备 33010602011771号