C与OC

来源:互联网 发布:数据挖掘从应用角度 编辑:程序博客网 时间:2024/04/30 22:25

C与OC的对比

  • 1.import 与include的区别:

  • import 与 include 一样,是将右边的文件拷贝到当前 import 的位置.

    • Import 的优点: 会自动防止重复拷贝
  • 2.printf和NSLog的区别:

     NSLog会自动换行; NSLog在输出内容时会附加一些系统信息; NSLog和printf接收的参数不一样.
  • 3.OC中的字符串

    • C语言中的字符串不是对象
char *name1 = "lnj";char name2[] = "lmj";
  • OC中的字符串是一个对象
  • 正是因为OC中的字符串是一个对象, 所以它就具备了很多功能
 NSString *str = @"lk"; Iphone *p = [Iphone new]; 注意: 输出C语言的字符串使用%s      输出OC的字符串使用%@, %@就专门用于输出对象类型的 NSLog(@"content = %@", [p loadMessage]);

如何创建OC字符串

NSString *str = @"lnj";NSString *str = [NSString stringWithFormat:@"age = %i, height = %f\n", 30, 1.75];NSLog(@"str = %@", str);%@是专门用于输出对象类型的.

如何计算字符串的长度

NSString *str = @"你在干什么";unsigned int len = [str length];length 计算的长度不是字符串的存储空间,而是字符个数,不包含\0

OC中的局部变量和全局变量

写在函数和大括号外部的变量, 我们称之为全局变量.作用域: 从定义的那一行开始, 一直到文件末尾局部变量可以先定义在初始化, 也可以定义的同时初始化;存储: 静态区程序一启动就会分配存储空间, 直到程序结束才会释放.写在函数或者代码块中的变量, 我们称之为局部变量.作用域: 从定义的那一行开始, 一直到遇到大括号或者return;局部变量可以先定义再初始化, 也可以定义的同时初始化;存储 : 栈存储在栈中的数据有一个特点, 系统会自动释放.
  • 对象都是在堆中创建的,对象中的成员变量自然也是在对象所在的堆区域内创建.

匿名对象:

匿名对象应用场景:

//1.当对象只需要使用一次的时候就可以使用匿名对象 [[Iphone new] brand];//2.匿名对象可以作为方法的参数(实参)Person *p1 = [Person new];[p1 signal:[Iphone new]];

如何将作为属性的结构体进行初始化?

  • 方法一:强制转换: stu->_birthday = (Date){1986, 1, 15};
  • 方法二:定义一个新的结构体,给d赋值,将d赋值给_birthday:
Date d = {1986, 1, 15};stu->_birthday = d;
  • 方法三:分别赋值
stu->_birthday.year = 1986;stu->_birthday.month = 1;stu->_birthday.day = 15;
0 0
原创粉丝点击