IOS开发学习笔记0005

数组

数组故名思议就是一组数据的集合。

int a[10];//可以存储10个整数

char  c[8];//可以存储8个字符‘

一般格式:数组类型 数组名[元素个数];

数组元素的访问:下标,a[2],a[0],a[4];//下标是从0开始的

下面是示例

 1 #include<stdio.h>
 2
 3
 4
 5 //数组作为函数参数
 6 void show(int a[],int n);
 7 //逆序输出数组
 8 void reverseArray(int a[],int n);
 9 //输出最大值
10 int returnMax(int a[],int n );
11 //求数组元素的和
12 int returnSum(int a[],int n);
13 int main()
14 {
15     int a[3];//定义
16     int nArray[] = {0,1,2,3,4,5,6,7,8,9};//定义并初始化
17
18     printf("%lu\n",sizeof(a));//数组的大小 = 数组类型*元素个数
19
20     //逐个赋值
21     a[0] = 11;
22     a[1] = 22;
23     a[2] = 33;
24
25     //数组的使用,注意数组越界问题
26     int arrayLenght = sizeof(nArray)/sizeof(int);
27     int i = 0;
28     while( i ++ < arrayLenght)//while循环实现遍历
29     {
30         printf("%d ",nArray[i]);
31     }
32     printf("\n");
33     show(a,3);
34     reverseArray(a,3);
35     printf("max :%d\n",returnMax(a,3));
36     printf("sum:%d\n",returnSum(a,3));
37
38     return 0;
39 }
40 //数组作为函数参数,在形参列表中,int a[10] 实际意义是int *a;
41 void show(int a[],int n)//a是数组,n是元素个数
42 {
43     //不要再函数中对函数参数数组进行sizeof,因为,数组再函数参数中传递的实际是一个指针,即数组的首地址
44     // sizeof on array function parameter will return sizeof ‘int *‘ instead of ‘int []‘
45     //printf("函数参数:%lu\n",sizeof(a));//数组的大小 = 数组类型*元素个数
46     for (int i = 0; i < n; i ++)//for循环实现遍历
47     {
48         printf("%d ",a[i]);
49     }
50     printf("\n");
51 }
52
53 //逆序输出数组
54 void reverseArray(int a[],int n)
55 {
56     while (n-- > 0 ) {
57          printf("%d ",a[n]);
58     }
59      printf("\n");
60 }
61
62 //输出最大值
63 int returnMax(int a[],int n )
64 {
65     int max = 0;
66     for (int i = 0; i < n; i ++)//for循环实现遍历
67     {
68         if (max < a[i])
69         {
70             max = a[i];//取得最大值
71         }
72     }
73     return max;
74 }
75 //求数组元素的和
76 int returnSum(int a[],int n)
77 {
78     int sum = 0;
79     for (int i = 0; i < n; i ++)//for循环实现遍历
80     {
81         sum += a[i];//累计求和
82     }
83     return sum;
84 }

二维数组以及多维数组

二位数组是一种特殊的一维数组:它的元素是一维数组。

二位数组就相当于一个表格,有行有列。

int a[3][2];//两行三列,如下图所示

a[0][0] a[0][1]
a[1][0] a[1][2]
a[2][0] a[2][2]

下标也是从零开始,数组名就是数组的地址,也就是第一个元素的地址a[0][0]

可以理解为三个一维数组:a[0],a[1],a[2].

  其中a[0] 包括a[0][0],a[0][1],

    a[1] 包括a[1][0],a[1][1],

    a[2] 包括a[2][0],a[2][1]

二维数组示例

 1 #include <stdio.h>
 2
 3 //二维数组练习
 4
 5 void show(int a[][2],int h,int l);
 6 int main()
 7 {
 8
 9     //定义
10     int a[3][2];
11     //for循环初始化
12     for (int i= 0; i < 3; i++)
13     {
14         for (int j = 0; j< 2; j ++)
15         {
16             a[i][j] = i+j;
17         }
18     }
19     printf("length: %lu\n",sizeof(a));
20     //数组存储顺序,先行后列
21     printf("数组存储顺序\na[0]: %p\n",&a[0]);
22     printf("a[1]: %p\n",&a[1]);
23     printf("a[2]: %p\n",&a[2]);
24     show(a,3,2);
25
26     return 0;
27 }
28
29 void show(int a[][2],int h,int l)
30 {
31     //数组名也是当做一个指针传进来的,int (*)[2];
32     //sizeof on array function parameter will return size of ‘int (*)[2]‘ instead of ‘int [3][2]‘
33    // printf("%lu\n",sizeof(a));
34
35     //遍历数组,循环嵌套
36     for (int i= 0; i < h; i++)
37     {
38         for (int j = 0; j< l; j ++)
39         {
40             printf("%p\t",&a[i][j]);//数组存储顺序,先行后列
41             //printf("%d ",a[i][j]);
42         }
43         printf("\n");
44
45     }
46     printf("\n");
47
48 }

字符串

"hello" //这就是一个字符串,由多个字符组成,以字符\0结束,\0字符不可见。

字符串输出时用 %s。

字符串的长度:strlen函数获取字符处的长度,不包括\0字符

 1 #include <stdio.h>
 2 #include <string.h>//strlen 函数头文件
 3
 4 //是否包含字符c,有得话返回,否则返回1
 5 char containC(char str[],int n);
 6
 7 //字符串
 8 int main()
 9 {
10     char c1[] = "jkhasdjkfhnkcdfdf";//系统自动添加结束字符 \0
11     char c2[] = {‘1‘,‘2‘,‘3‘,‘\0‘};//这样赋值的话,要自己加上结束字符 \0
12     printf("%s\t %s\n",c1,c2);
13     printf("%lu\t %lu\n",strlen(c1),sizeof(c1));//strlen获得字符串长度,不包括\0
14
15     printf("%c\n",containC(c1,strlen(c1)));
16
17     return 0;
18 }
19
20 //是否包含字符c,有得话返回,否则返回1
21 char containC(char str[],int n)
22 {
23     //循环遍历字符串
24     for (int i = 0; i < n ; i ++)
25     {
26         if (str[i] == ‘c‘)
27         {
28             return ‘1‘;//找到返回1
29         }
30     }
31     return ‘0‘;//找不到返回0
32 }

2015-4-11 今日如此,明日依旧。

时间: 2024-10-30 11:06:28

IOS开发学习笔记0005的相关文章

IOS开发学习笔记-(2)键盘控制,键盘类型设置,alert 对话框

一.关闭键盘,放弃第一响应者,处理思路有两种 ① 使用文本框的 Did End on Exit 绑定事件 ② UIControl on Touch 事件 都去操作 sender 的  resignFirstResponder #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UITextField *txtUserName; @pro

iOS开发学习笔记:基础篇

iOS开发需要一台Mac电脑.Xcode以及iOS SDK.因为苹果设备都具有自己封闭的环境,所以iOS程序的开发必须在Mac设备上完成(当然,黑苹果应该也是可以的,但就需要花很多的精力去折腾基础环境),Xcode是一个集成开发环境,包括了编辑器.调试.模拟器等等一系列方便开发和部署的工具,iOS SDK则是开发应用所必需,不同的SDK分别对应不同的iOS版本或设备,通常我们需要下载多个iOS SDK以确保我们开发的程序能够在不同版本的iOS上正常运行. 创建新工程 Xcode提供了很多种工程模

IOS开发学习笔记-(3) 进度条、等待动画开始停止

一.创建对应空间视图  ,如下图: 二.编写对应的 .h 代码,如下 : #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activWaitNetWork; @property (weak, nonatomic) IBOutlet UIProgressView *pgrsDownLo

IOS开发学习笔记(二)-语音识别(科大讯飞)

上次简单地讲解了如何利用科大讯飞完成语音合成,今天接着也把语音识别整理一下.当然,写代码前我们需要做的一些工作(如申请appid.导库),在上一篇语音合成的文章当中已经说过了,不了解的可以看看我上次的博文,那么这次直接从堆代码开始吧. 详细步骤: 1.导完类库之后,在工程里添加好用的头文件.在视图里只用了一个UITextField显示识别的内容,两个UIButton(一个开始监听语音,一个结束监听),然后引入类.添加代理,和语音合成的一样. MainViewController.h 1 #imp

IOS开发学习笔记(1)-----UILabel 详解

1. [代码][C/C++]代码     //创建uilabelUILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(20, 40, 280, 80)];//设置背景色label1.backgroundColor = [UIColor grayColor];//设置taglabel1.tag = 91;//设置标签文本label1.text = @"Hello world!";//设置标签文本字体和字体大小label1.

IOS开发学习笔记(2)-----UIButton 详解

1. [代码][C/C++]代码     //这里创建一个圆角矩形的按钮    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];    //    能够定义的button类型有以下6种,//    typedef enum {//        UIButtonTypeCustom = 0,          自定义风格//        UIButtonTypeRoundedRect,        

IOS开发学习笔记--语音合成(科大讯飞)

      现在语音服务越来越热,我们平时使用的很多软件都带有语音合成和识别功能,用起来也很方便.说到语音服务,Google和微软都提供过API接口,不过笔者要介绍的是国内的智能语音技术提供商---科大讯飞.之前看过一个比较Google.微软和科大讯飞语音识别引擎的博文(http://fqctyj.blog.163.com/blog/static/70843455201361955322797/),有兴趣可以去看看.笔者接触语音服务的时间也不长,对语音服务也不是很了解,但是拆解过科大讯飞的Dem

IOS开发学习笔记017-什么是IOS开发

应用程序开发流程 1.IOS开发需要思考的问题 用户是谁?不同应用程序的内容和用户体验大不相同,这取决于想要编写的是什么应用程序,它可能是儿童游戏,也可能是待办事项列表应用程序,又或者是测试自己学习成果的应用程序. 应用程序的用途是什么?赋予应用程序一个明确的用途十分重要.了解激发用户使用应用程序的动因是界定用途的一个出发点. 应用程序尝试解决什么问题?应用程序应该完美解决单个问题,而不是尝试解决多个截然不同的问题.如果发现应用程序尝试解决不相关的问题,那么最好考虑编写多个应用程序. 应用程序要

ios开发学习笔记(1)

objective-c基础总结 第一二章 1.application:didiFinishLauchingWithOptions:程序启动后立即执行 2.启动界面代码格式:self.window = [UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];//1.从Infor.plist中取出版本号NString *version = [NSBundle mainBundle].infoDictionary[key];//2.