第一章 C语言基础
我要选李白
改变你的生活
展开
-
055.Global Variable 全局变量
--------------- main.m ---------------#importintsum;intavg;intmax;intmin;voidstatistics(intnums[] , unsigned long len){ min = nums[0]; for (int原创 2015-07-19 00:39:35 · 288 阅读 · 0 评论 -
091.Block And Var 块与局部变量
--------------- main.m ---------------#importintmain(){ int a = 20; void(^printMy)(void) = ^(void) { NSLog(@"a:%d", a); // 可以访问外面的局部变量原创 2015-07-19 01:38:30 · 471 阅读 · 0 评论 -
044.Function Declare 函数的声明
--------------- main.m ---------------#importintmain(){ //声明函数,可用以下两种方式的任意一种 void printMsg(NSString* msg, int loopNum); // void printMsg(NSString * , int);原创 2015-07-18 14:59:36 · 1130 阅读 · 0 评论 -
046.Pointer Transfer 指针类型的参数传递
--------------- main.m ---------------#import@interfacePeople : NSObject@propertyintage;@propertyintheight;@end@implementationPeople@endvoidswap(Peo原创 2015-07-18 15:00:58 · 451 阅读 · 0 评论 -
047.Recursive 递归函数
--------------- main.m ---------------已知,f(0)=1,f(1)=4,f(n+2)=2*f(n+1)+f(n),其中n是大于0的整数, 求f(10)的值。#importintfn(intn){ if(n == 0) { return原创 2015-07-18 15:03:20 · 767 阅读 · 0 评论 -
048.Array Ele Arg 数组的元素作为函数的参数
--------------- main.m ---------------让用户输入分别两组数字,自动生成两个数组,并比较两个数组的大小。#importintbig(intx , int y){ returnx > y ? 1 : (x 1: 0);}intmain(){ int a[10]原创 2015-07-18 15:03:59 · 255 阅读 · 0 评论 -
045.Primitive Transfer 函数的参数传递
--------------- main.m ---------------#importvoidswap(inta , int b){ //本函数的目的:使变量a、b的值互换 int tmp = a; a = b; b = tmp; NSLog(@"swap函数里,a的值是:%d;b的值是原创 2015-07-18 15:00:14 · 298 阅读 · 0 评论 -
056.Declare Global Variable 声明全局变量
--------------- main.m ---------------#importvoidchange(){ //声明本函数将要使用的全局变量 externintglobalVar; globalVar =20;}intmain(){ //声明本函数将要使用的全局变量原创 2015-07-19 00:40:14 · 2167 阅读 · 0 评论 -
066.Pointer 使用指针替换一个变量的值
--------------- main.m ---------------#importvoidchange(int* p);// 函数声明intmain(){ int a = 90; change(&a); NSLog(@"a的值变成了%d”, a); return 0;}原创 2015-07-19 00:49:08 · 294 阅读 · 0 评论 -
071.Pointer Array 指向数组的指针
--------------- main.m ---------------#importintmain(){ int arr[] = {4,20 , 10 , -3,34}; int* p = &arr[0]; NSLog(@"%p", arr); //把数组当指针输出 NSLog(@原创 2015-07-19 00:56:02 · 516 阅读 · 0 评论 -
090.Block 定义块的三种方式
--------------- main.m ---------------#importintmain(){ //定义不带参数、无返回值的块 void (^printStr)(void) = ^(void) { NSLog(@"我正在开始学习Objective-C的块"); };原创 2015-07-19 01:35:41 · 257 阅读 · 0 评论 -
085.Struct 两步定义结构体
--------------- main.m ---------------#importintmain(){ structpoint { int x; int y; }; structpoint p1; struct point p2;原创 2015-07-19 01:29:47 · 255 阅读 · 0 评论 -
080.Function Pointer Arg 函数指针作为函数参数
--------------- main.m ---------------#importvoidmap(int* data ,intlen , int (*fn)()){ for(int* p = data ; p { printf("%d,", (*fn)(*p)); }原创 2015-07-19 01:26:47 · 278 阅读 · 0 评论 -
057.Extern Global Variable 外部全局变量
--------------- main.m ---------------#importintchange(); // 声明外部函数intmain(){ extern int count; // 声明外部全局变量 change(); // 调用外部函数 NSLog(@"%d"原创 2015-07-19 00:41:02 · 404 阅读 · 0 评论 -
060.Arg Define 带参数的宏定义
--------------- main.m ---------------#import#define PI3.1415926#define GIRTH(r) PI *2 * r#define AREA(r) PI * r * rintmain(){ NSLog(@"请输入圆的半径:"); double ra原创 2015-07-19 00:43:49 · 235 阅读 · 0 评论 -
061.Arg Define 宏的更严谨的写法
--------------- main.m ---------------#import#define PI3.1415926#define GIRTH(r) (PI *2 * (r)) #define AREA(r) (PI * (r) * (r))intmain(){ NSLog(@"请输入圆的半径:");原创 2015-07-19 00:45:30 · 283 阅读 · 0 评论 -
063.#IfDef 使用宏来控制调试信息
--------------- main.m ---------------#import//#define DEBUGintmain(){ for(inti = 0 ; i 10 ; i++) { #ifdef DEBUG NSLog(@"调试输出:i的值为,%d",原创 2015-07-19 00:46:48 · 265 阅读 · 0 评论 -
064.#If #else 与if else的区别
--------------- main.m ---------------#import#define AGE25intmain(){ #if AGE >60 NSLog(@"老年人"); #elif AGE >40 NSLog(@"中年人"); #elif AGE >2原创 2015-07-19 00:47:47 · 343 阅读 · 0 评论 -
070.Pointer Sort 使用指针排序变量
--------------- main.m ---------------#importvoidswap(int* p1 ,int* p2){ inttmp = *p1; *p1 = *p2; *p2 = tmp;}voidexchange(int* p1 ,int* p2 ,int* p3)原创 2015-07-19 00:53:43 · 443 阅读 · 0 评论 -
072.Traverse Array 使用指针遍历数组
--------------- main.m ---------------#importintmain(){ int arr[] = {4,20 , 10, -3,34}; for(inti = 0 , len = sizeof(arr) / sizeof(arr[0]); i原创 2015-07-19 00:59:48 · 382 阅读 · 0 评论 -
073.Traverse Array 遍历数组简化版
--------------- main.m ---------------#importintmain(){ int arr[] = {4,20 , 10, -3,34}; for(int* p = arr , len =sizeof(arr) /sizeof(arr[0]); p原创 2015-07-19 01:07:27 · 405 阅读 · 0 评论 -
079.Pointer Function 指向函数的指针
--------------- main.m ---------------#importintmax(int* data ,intlen) // 求最大值{ int max = *data; for(int* p = data ; p { if(*p > max) {原创 2015-07-19 01:26:13 · 321 阅读 · 0 评论 -
077.Char Pointer String 用指针表示字符串
--------------- main.m ---------------#importintmain(){ char* str = "I love iOS"; NSLog(@"%s", str); str += 7; // 让str指向第7个元素 NSLog(@"%s", str);原创 2015-07-19 01:24:56 · 272 阅读 · 0 评论 -
082.Pointer Array 指针数组
--------------- main.m ---------------#importvoidsort(char* names[] ,intn){ char* tmp; for(inti = 0 ; i 1 ; i++) { for(intj = i + 1 ; j原创 2015-07-19 01:28:01 · 364 阅读 · 0 评论 -
083.Argv 主函数形参
--------------- main.m ---------------#importintmain( int argc, char * argv[]){ NSLog(@"参数的个数:%d" , argc); //遍历argv数组的每个元素 for (inti = 0 ; i {原创 2015-07-19 01:28:40 · 386 阅读 · 0 评论 -
074.Traverse Array 遍历数组的常见错误
--------------- main.m ---------------#importintmain(){ intlen = 5; int arr[5]; int* p = arr; NSLog(@"请输入5个数字,以空格隔开,按回车结束"); for( ; p < arr + l原创 2015-07-19 01:08:50 · 329 阅读 · 0 评论 -
075.Quick Sort 快速排序
--------------- main.m ---------------#importvoidswap(int* data,inti, int j){ int tmp; tmp = *(data + i); *(data + i) = *(data + j); *(data + j) = tmp;原创 2015-07-19 01:12:48 · 354 阅读 · 0 评论 -
078.Char Pointer Arg 字符指针作为函数参数
--------------- main.m ---------------#importvoidcopyString(char* to ,char* from){ while(*from) { *to++ = *from++; } *to ='\0';}intma原创 2015-07-19 01:25:37 · 399 阅读 · 0 评论 -
081.Return Pointer Function 返回指针的函数
--------------- main.m ---------------#import#define LENGTH5int* map(int* data ,int(*fn)()){ static int result[LENGTH]; int i = 0; for(int* p = dat原创 2015-07-19 01:27:23 · 470 阅读 · 0 评论 -
084.Pointer Pointer 指向指针的指针
--------------- main.m ---------------#importintmain(){ int a = 20; int* p = &a; int** pt = &p; NSLog(@"%p", p); NSLog(@"%p", pt); NSLog(@"%p",原创 2015-07-19 01:29:07 · 1072 阅读 · 0 评论 -
088.Init Struct 初始化结构体
--------------- main.m ---------------#importintmain(){ structrect { int x; int y; int width; int height; } rect1 = {20原创 2015-07-19 01:32:33 · 1367 阅读 · 0 评论 -
089.Struct Array 结构体数组
--------------- main.m ---------------#importintmain(){ struct point { int x; int y; }; typedefstructpoint FKPoint; FKPoint原创 2015-07-19 01:34:48 · 361 阅读 · 0 评论 -
092.Block And Var 块中修改局部变量
--------------- main.m ---------------#importintmain(){ int a = 20; __block int b = 20; void (^printMy)(void) = ^(void) { // a = 30;原创 2015-07-19 01:39:17 · 285 阅读 · 0 评论 -
093.Typedef Block Type 定义块类型
--------------- main.m ---------------#importintmain(){ // 使用typedef定义块类型 typedefvoid(^FKPrintBlock)(NSString*); // 使用FKPrintBlock定义块变量 FKPrintBlock原创 2015-07-19 01:40:15 · 273 阅读 · 0 评论 -
069.Pointer 指针作为函数的返回值
--------------- main.m ---------------#importchar* test();intmain(){ char* str = test(); NSLog(@"str=%s", str); return 0;}char* test(){原创 2015-07-19 00:52:34 · 290 阅读 · 0 评论 -
068.Pointer 指针为什么分类型
--------------- main.m ---------------#importintmain(){ char* p1; int* p2; long* p3; NSLog(@"%lu",sizeof(p1)); NSLog(@"%lu",sizeof(p2));原创 2015-07-19 00:51:20 · 320 阅读 · 0 评论 -
065.Pointer 什么是指针
--------------- main.m ---------------#importintmain(){ int a = 200; int* p; p = &a; NSLog(@"%d", *p); NSLog(@"%d", a == (*(&a)));}一、编写本节原创 2015-07-19 00:48:24 · 256 阅读 · 0 评论 -
087.Typedef 另起名称简化代码
--------------- main.m ---------------#importintmain(){ struct point { int x; int y; }; typedef struct point FKPoint; enums原创 2015-07-19 01:31:13 · 305 阅读 · 0 评论 -
042.Function 函数的定义
--------------- main.m ---------------#import//定义一个函数,声明两个形参,返回值为int型intmax(intx , int y){ int z = x > y ? x : y; return z;}//定义一个函数,声明一个形参,返回值为NSString原创 2015-07-18 14:57:58 · 291 阅读 · 0 评论 -
067.Pointer 使用指针交换两个变量的值
--------------- main.m ---------------#importvoidexchange(int* p1,int* p2);intmain(){ int a = 130; intb = 170; exchange(&a, &b); NSLog(@"原创 2015-07-19 00:50:30 · 440 阅读 · 0 评论