日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【IOS 开发】Object - C 数组使用详解

發(fā)布時(shí)間:2025/6/17 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【IOS 开发】Object - C 数组使用详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

.



一. 一維數(shù)組



1. 一維數(shù)組定義



(1) 數(shù)組定義


數(shù)組定義格式 : type arrayName[len];

-- 默認(rèn)初始化 : 注意 數(shù)組定以后, 如果是 int 數(shù)組默認(rèn)初始化為 0, 如果是浮點(diǎn)型 默認(rèn)元素為 0.0, 如果是 指針類型數(shù)組 默認(rèn)類型 null;



(2) 數(shù)字地址計(jì)算


數(shù)組元素地址性質(zhì) : 數(shù)組元素是連續(xù)存放的;

-- 數(shù)組首地址 : 數(shù)組變量是一個(gè)指針, 其存放了數(shù)組中元素的首地址;

-- 元素地址計(jì)算公式 : 元素地址 = 數(shù)組首地址 + 數(shù)組元素所占內(nèi)存大小 * 元素索引值;




2. 數(shù)組初始化


指定數(shù)組元素個(gè)數(shù) :?

-- 全部初始化 : 對數(shù)組的所有的元素進(jìn)行初始化;

-- 部分初始化 : 對數(shù)組中的一部分元素進(jìn)行初始化;


不指定數(shù)組個(gè)數(shù) : 如果不指定數(shù)組個(gè)數(shù), 定義時(shí)必須初始化, 會根據(jù)初始化的元素個(gè)數(shù)自動推斷數(shù)組長度;


數(shù)組長度計(jì)算 : sizeof(arrayName) / sizeof(arrayName[0]);



3. 代碼示例


代碼示例 :?

-- 代碼內(nèi)容 :?

/*************************************************************************> File Name: 12-oneArray.m> Author: octopus> Mail: octopus_truth.163.com > Created Time: 日 12/ 7 16:30:31 2014************************************************************************/#import <Foundation/Foundation.h>int main(int argc, char * argv[]) {@autoreleasepool {//定義數(shù)組格式 type arrayName[length]int array[5]; //定義長度, 完全賦值int array1[5] = {0, 1, 2, 3, 4};//定義長度, 不完全賦值int array2[5] = {0, 1, 2};//不定義長度, 必須初始化int array3[] = {0, 1, 2};//定義 C語言字符串?dāng)?shù)組char * array4[] = {"csdn", "octopus", "hello"};//定義 Object-C 字符串?dāng)?shù)組NSString *array5[] = {@"csdn", @"octopus", @"hello"};//遍歷 array2for(int i = 0; i < sizeof(array2) / sizeof(array2[0]); i ++){NSLog(@"array2[%d] = %d", i, array2[i]);}} }-- 執(zhí)行結(jié)果 :?

octopus-2:oc octopus$ clang -fobjc-arc -framework Foundation 12-oneArray.m octopus-2:oc octopus$ ./a.out 2014-12-07 16:38:58.238 a.out[379:507] array2[0] = 0 2014-12-07 16:38:58.241 a.out[379:507] array2[1] = 1 2014-12-07 16:38:58.242 a.out[379:507] array2[2] = 2 2014-12-07 16:38:58.242 a.out[379:507] array2[3] = 0 2014-12-07 16:38:58.243 a.out[379:507] array2[4] = 0



三. 多維數(shù)組



1. 二維數(shù)組定義


二維數(shù)組定義格式 : type arrayName[rowLength][columnLength];

-- 數(shù)組長度 : 左側(cè)的數(shù)字 rowLength 是 一維數(shù)組的個(gè)數(shù), 即有幾行;



2. 多維數(shù)組初始化


幾種初始化方式 : 示例 int array[3][5];

-- 初始化全部二級數(shù)組 : 可以為其初始化 3 個(gè)一維數(shù)組, 一維數(shù)組中得元素個(gè)數(shù)隨意;

-- 初始化部分二級數(shù)組 : 可以為其初始化 少于 3 個(gè)一維數(shù)組, 只初始化一部分;

-- 省略二維數(shù)組長度 : 如果在聲明數(shù)組時(shí)進(jìn)行初始化, 那么可以省略數(shù)組的 第一個(gè) 數(shù)組長度;

-- 省略初始化時(shí)的二級數(shù)組括號 : 一維數(shù)組的括號可以省略, 系統(tǒng)會自動默認(rèn)初始化的部分自動填充;



3. 示例


代碼示例 :?

-- Object-C 代碼 :?

/*************************************************************************> File Name: 12-multiArray.m> Author: octopus> Mail: octopus_truth.163.com > Created Time: 四 12/11 00:59:14 2014************************************************************************/#import <Foundation/Foundation.h>int main(int argc, char * argv[]) {@autoreleasepool {printf("1. 初始化全部數(shù)組的部分內(nèi)容\n");int array1[3][5] = {{1, 2},{5, 7, 7},{2, 4}};for(int i = 0; i < sizeof(array1)/sizeof(array1[0]); i ++){for(int j = 0; j < sizeof(array1[0])/sizeof(array1[0][0]); j ++){printf("%d\t", array1[i][j]);}printf("\n");}printf("\n2. 初始化部分?jǐn)?shù)組的部分內(nèi)容\n");int array2[3][5] = {{1, 2, 4, 6, 7},{1}};for(int i = 0; i < sizeof(array2)/sizeof(array2[0]); i ++){for(int j = 0; j < sizeof(array2[0])/sizeof(array2[0][0]); j ++){printf("%d\t", array2[i][j]);}printf("\n");}printf("\n3. 省略數(shù)組的長度\n");int array3[][5] = {{1, 2, 4, 6, 7},{1}};for(int i = 0; i < sizeof(array3)/sizeof(array3[0]); i ++){for(int j = 0; j < sizeof(array3[0])/sizeof(array3[0][0]); j ++){printf("%d\t", array3[i][j]);}printf("\n");}printf("\n4. 省略數(shù)組的大括號\n");int array4[][5] = {1, 2, 4, 6, 7,1};for(int i = 0; i < sizeof(array4)/sizeof(array4[0]); i ++){for(int j = 0; j < sizeof(array4[0])/sizeof(array4[0][0]); j ++){printf("%d\t", array4[i][j]);}printf("\n");}} }

-- 執(zhí)行結(jié)果 :?

octopus-2:oc octopus$ clang -fobjc-arc -framework Foundation 12-multiArray.m octopus-2:oc octopus$ ./a.out 1. 初始化全部數(shù)組的部分內(nèi)容 1 2 0 0 0 5 7 7 0 0 2 4 0 0 0 2. 初始化部分?jǐn)?shù)組的部分內(nèi)容 1 2 4 6 7 1 0 0 0 0 0 0 0 0 0 3. 省略數(shù)組的長度 1 2 4 6 7 1 0 0 0 0 4. 省略數(shù)組的大括號 1 2 4 6 7 1 0 0 0 0


三. 字符串, 字符數(shù)組 與 字符串相關(guān)函數(shù)



1. NSLog 與 printf 對比?


NSLog 與 printf 對比 :?

-- 輸出字符串格式不同 : printf 輸出 C 語言格式字符串, 如 "string", NSLog 輸出 Object-C 字符串, 如 @"string" ;

-- NSLog 有多余操作 : NSLog 會自動添加 日期 時(shí)間 自動換行 等操作;


示例 :?

/*************************************************************************> File Name: 12-NSLogVSprintf.m> Author: octopus> Mail: octopus_truth.163.com > Created Time: 四 12/11 01:18:17 2014************************************************************************/#import <Foundation/Foundation.h>int main(int argc, char * argv[]) {@autoreleasepool {NSLog(@"這是 NSLog 輸出的字符串");printf("這是 printf 輸出的字符串");} }
-- 執(zhí)行結(jié)果 :?

octopus-2:oc octopus$ clang -fobjc-arc -framework Foundation 12-NSLogVSprintf.m octopus-2:oc octopus$ ./a.out 2014-12-11 01:19:07.370 a.out[1925:507] 這是 NSLog 輸出的字符串 這是 printf 輸出的字符串octopus-2:oc octopus$


2. 字符數(shù)組 和 字符串?


定義字符數(shù)組方式 : 下面的兩種方法是等價(jià)的;

-- 使用字符串初始化 : char array[] = "fuck", 使用這種方法定以后, 會在后面自動加上 '\0';

-- 使用數(shù)組方式初始化 : char array[] = {'f', 'u', 'c', 'k', '\0'};


關(guān)于字符數(shù)組的長度 : 一個(gè)由 4 個(gè)字符組成的數(shù)組, 其長度是 5, 后面還需要加上一個(gè) '\0';


代碼示例 :?

/*************************************************************************> File Name: 12-charArray.m> Author: octopus> Mail: octopus_truth.163.com > Created Time: 四 12/11 01:27:12 2014************************************************************************/#import <Foundation/Foundation.h>int main(int argc, char * argv[]) {@autoreleasepool {char char_array[] = "fuck";char char_array1[] = {'f', 'u', 'c', 'k', '\0'};printf("char_array 大小 : %lu, char_array1 大小 : %lu\n", sizeof(char_array), sizeof(char_array1));} }
-- 運(yùn)行結(jié)果 :?

octopus-2:oc octopus$ clang -fobjc-arc -framework Foundation 12-charArray.m octopus-2:oc octopus$ ./a.out char_array 大小 : 5, char_array1 大小 : 5


3. 常用的字符串處理函數(shù)



代碼示例 :?

-- 代碼 :?

/*************************************************************************> File Name: 12-strMethod.m> Author: octopus> Mail: octopus_truth.163.com > Created Time: 四 12/11 01:34:08 2014************************************************************************/#include <string.h>#import <Foundation/Foundation.h>int main(int argc, char * argv[]) {@autoreleasepool {char c = '1';char c1 = 'A';char c2 = 'a';char c3 = '\t';NSLog(@"字符相關(guān)函數(shù)");printf("c = %c 是否為數(shù)字或數(shù)字 : %d \n", c, isalnum(c));printf("c = %c 是否為字母 : %d\n", c, isalpha(c));printf("c = %c 是否為控制字符 : %d\n",c, iscntrl(c));printf("c = %c 是否為控制數(shù)字 : %d\n", c, isdigit(c));printf("c = %c 是否為可打印字符 : %d\n", c, isgraph(c));printf("c1 = %c 是否為小寫字母 : %d\n", c1, islower(c1));printf("c1 = %c 是否為大寫字母 : %d\n", c1, isupper(c1));printf("c1 = %c 是否為標(biāo)點(diǎn)符號 : %d\n", c1, ispunct(c1));printf("c3 = %c 是否為空白字符 : %d\n", c3, isspace(c3));printf("c1 = %c 是否是十六進(jìn)制字符 : %d\n", c1, isxdigit(c1));NSLog(@"字符串相關(guān)函數(shù)");char array[20] = "fuck";char array1[] = "bitch";//注意 字符串 array 要有足夠的空間 存放 后面的 array1printf("%s 拼接字符串 \n", strcat(array, array1));printf("array 出現(xiàn) c 的位置 %s \n", strchr(array, 'c'));printf("比較 array 與 array1 大小 : array 是否大于 array1 : %d\n", strcmp(array, array1));} }

-- 執(zhí)行結(jié)果 :?

octopus-2:oc octopus$ clang -fobjc-arc -framework Foundation 12-strMethod.m octopus-2:oc octopus$ ./a.out 2014-12-11 02:11:08.608 a.out[2164:507] 字符相關(guān)函數(shù) c = 1 是否為數(shù)字或數(shù)字 : 1 c = 1 是否為字母 : 0 c = 1 是否為控制字符 : 0 c = 1 是否為控制數(shù)字 : 1 c = 1 是否為可打印字符 : 1 c1 = A 是否為小寫字母 : 0 c1 = A 是否為大寫字母 : 1 c1 = A 是否為標(biāo)點(diǎn)符號 : 0 c3 = 是否為空白字符 : 1 c1 = A 是否是十六進(jìn)制字符 : 1 2014-12-11 02:11:08.610 a.out[2164:507] 字符串相關(guān)函數(shù) fuckbitch 拼接字符串 array 出現(xiàn) c 的位置 ckbitch 比較 array 與 array1 大小 : array 是否大于 array1 : 4


總結(jié)

以上是生活随笔為你收集整理的【IOS 开发】Object - C 数组使用详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。