其他语言特性

作者:追风剑情 发布于:2019-2-27 10:37 分类:Objective-C

一、复合字面量

创建struct date类型的结构,并且赋上一些初始值
theDate = (struct date) { .month = 7, .day = 2, .year = 2014 };

还可以定义结构之外的其他类型
intPtr = (int [100]) { [0] = 1, [50] = 50, [99] = 99 };

二、goto语句

  1. int main(int argc, const char * argv[]) {
  2. @autoreleasepool {
  3. // 跳转到out_of_data标签
  4. goto out_of_data;
  5. NSLog(@"start");
  6. // 定义out_of_data标签
  7. out_of_data:
  8. NSLog(@"Unexpected end of data.");
  9. }
  10. return 0;
  11. }


三、空语句

只有一个分号的语句
例如:
读取终端输入的所有字符
while ( (*text++ = getchars()) != '' )
  ;

四、逗号运算符

例如:
for ( i = 0, j = 100; i != 10; ++i, j-=10)

五、sizeof运算符

      sizeof运算符返回的是指定项的字节大小。sizeof运算符的参数可以是变量、数组名称、基本数据类型名称、对象、派生数据类型名称或表达式。
示例

  1. int main(int argc, const char * argv[]) {
  2. @autoreleasepool {
  3. struct date {
  4. int month;
  5. int day;
  6. int year;
  7. } theDate;
  8. int count = 80;
  9. int *intPtr = &count;
  10. // int类型所在内存大小
  11. NSLog(@"sizeof(int)=%i", sizeof(int));
  12. // 结构所在内存大小
  13. NSLog(@"sizeof(theDate)=%i", sizeof(theDate));
  14. // 指针所占内存大小
  15. NSLog(@"sizeof(intPtr)=%i", sizeof(intPtr));
  16. // 指针值所占内存大小
  17. NSLog(@"sizeof(*intPtr)=%i", sizeof(*intPtr));
  18. }
  19. return 0;
  20. }

运行测试
111.png

六、命令行参数

示例

  1. // argc (argument count的简写) 参数个数
  2. // *argv[] (argument vector的简写) 参数数组
  3. int main(int argc, const char * argv[]) {
  4. @autoreleasepool {
  5. NSLog(@"argc = %i", argc);
  6. for (int i = 0; i <= argc; i++)
  7. NSLog(@"argv[%i] = %s", i, argv[i]);
  8. //argv[0] 为启动程序的名称
  9. //argv[argc] 最后一个指针规定为空
  10. }
  11. return 0;
  12. }

运行测试
111.png

七、工作原理
  1. 实例变量存储在结构中
  2. 对象变量实际上是指针
  3. 方法是函数,而消息表达式是函数调用
  4. id类型是通用指针类型



标签: Objective-C

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号