C和OC语言中的数据、字符串对比

一、数组

int array[] = {1, 2, 3, 4};

普通数组的元素个数不能变,但是元素的值是能改变的。
数组中元素数据类型必须一致,且与数组名类型一致。
数组元素可以是指针

c语言中的可变数组,需要手动申请能存空间,使用指针指向申请的内存。由于空间是手动申请的,空间大小可变;以使用数组名的方式使用指针;这就是C语言中的可变数组。

NSArray *array = @[@1, @2, @[]];
NSMutableArray *array = [NSMutableArray arrayWithArray:@[]]; 

如果数组为不可变数组,则数组就是常量!数组元素和个数都不能变。
如果数组为可变数组,数组元素和个数都能变。

二、字符串

// 既可以指向可变字符串,也可以指向不可变字符串。
char *s;
s = "unvariable"; // 现在是不可变

char sArr[] = "variable";  // sArr是一个char类型的数组,元素可变
s = sArr; // s指向了一段可变的字符串。
printf("%s", s);   // C语言里很想面向对象的方式的打印。

这也是许多c函数的入参是(char ch[])形式的原因,因为需要入参指向可变字符串的指针。

OC中的字符串分为可变和不可变,不可变字符串是常量。

你可能感兴趣的:(C和OC语言中的数据、字符串对比)