oc中null NULL nil void (void*)实例讲解
来源:互联网 发布:四九算法准吗 编辑:程序博客网 时间:2024/06/07 03:16
NULL 是指的是C中空指针
nil 指的是OC中把一个对象设置为空
void 一般指的是返回值为空
(void *) 一般指的是无类型的指针 而不是空指针 通用指针的意思
类似的还有有趣的例子 [Object new ] &[NSNull null]
前者每次都会新建一个对象 而重复后者的时候打印地址会发现地址相同 后者最主要的
作用是用来在数组占位,不需要新建更多的对象
下面为例子::
//
// main.m
// Foundation-空值
//
// Created by qingyun on 15/12/8.
// Copyright (c) 2015年 qingyun. All rights reserved.
//
import
import “TestClass.h”
int main(int argc, const char * argv[]) {
// NULL C的空值针
char *p = NULL;
// void 代表没有,一般用于空参数或者空返回值的表示
void *p1; // 这时void代表空类型,p1是没有类型的指针
p1 = p;
// null
NSString *str;
NSLog(@”str >>>> %@”, str);
TestClass *tc = [TestClass new];
NSLog(@”tc >>>>> %@”, tc);
// nil 表示空对象
NSLog(@”tc >>>>> %p”, tc);
tc = nil;
NSLog(@”tc >>>>> %p”, tc);
// @0 表示数值0的对象
int a = [@0 intValue];
NSArray *arr = @[@11,@”abc”,@YES, @0];
// NSNull 来表示还没有内容的对象 [NSNull null]NSMutableArray *group1 = [NSMutableArray arrayWithArray:@[@"zongkai",[NSNull null],@"mengjie",[NSNull null],@"erlong",[NSNull null],@"lifeng",[NSNull null],[NSNull null]]];NSLog(@"group1 >>>> %@", group1);
// [NSObject new];//a
// [NSObject new];//b
// [NSObject new];//c
//
NSLog(@”nsnull >>>> %@, %p”, [NSNull null],[NSNull null]); //null1
NSLog(@”nsnull >>>> %@, %p”, [NSNull null],[NSNull null]);
NSLog(@”nsnull >>>> %@, %p”, [NSNull null],[NSNull null]);
NSLog(@”nsnull >>>> %@, %p”, [NSNull null],[NSNull null]);
NSLog(@”nsnull >>>> %@, %p”, [NSNull null],[NSNull null]);
NSLog(@”nsnull >>>> %@, %p”, [NSNull null],[NSNull null]);
NSLog(@”nsnull >>>> %@, %p”, [NSNull null],[NSNull null]);
NSLog(@”nsnull >>>> %@, %p”, [NSNull null],[NSNull null]);
// [NSNull null]; //null2
NSString *st = @"Moumoumou";//NSInteger index = 0;NSMutableArray *indexs = [NSMutableArray array];// 在集合遍历的时候的不能将该集合的元素改变
// for (id obj in group1) {
// if (obj == [NSNull null]) {
// index = [group1 indexOfObject:obj];
// break;
// }
// }
// group1[index] = st;
for (int i=0; i<[group1 count]; i++) {
if (group1[i] == [NSNull null]) {
[indexs addObject:@(i)];//
}
}
NSLog(@”indexs >>>>> %@”, indexs);
if 0
// 让系统选择默认第一个空位置NSInteger firstFreePosition = [[indexs firstObject] integerValue];group1[firstFreePosition] = st;
else
// 学生自己选择自己的空位置NSInteger firstFreePosition;NSLog(@"请选择您要的位置:");for (NSNumber *num in indexs) { printf("%ld\t", (long)[num integerValue]);}printf("\n");scanf("%ld", &firstFreePosition);group1[firstFreePosition] = st;
endif
NSLog(@"group1 >>> %@", group1);return 0;}
- oc中null NULL nil void (void*)实例讲解
- OC中nil/Nil/NULL的区别
- OC中nil,Nil,NULL的区别
- Null与Void谜题
- Void与NULL指针
- C语言中void和NULL
- C语言中void和NULL
- OC中 Null 与 nil的区别
- oc中,nil,Nil,NULL 和NSNull的小结
- OC 中 Nil nil NULL NSNull 的区别
- OC 中nil,Nil,NULL,NSNull的含义
- OC中nil、Nil、NULL、NSNULL的一些区别
- 浅谈NULL、0、(void *)0
- 空指针(NULL,0),野指针,void*的讲解
- C#中的Null与void
- void * 与 空指针NULL
- void指针与NULL指针
- [OC]nil、Nil、NULL、NSNull的区别
- Zookeeper基本原理
- MyEclipse开发Web项目发布到Tomcat下的Root目录
- pip装了一个包,但是python里Import的时候找不到怎么办?
- android中树形json解析为对象,并通过dialog显示,多级列表
- LDA理解以及源码分析(二)
- oc中null NULL nil void (void*)实例讲解
- final
- java获取当前ip
- 双端链表
- 如何给UIViewController瘦身
- zzulioj 1803: SC晾衣服 (暴力+技巧转换)
- HttpClient 4.3教程
- 代码导入到eclipse中但是不能通过ctrl键追溯代码
- RabbitMQ 入门四(Publish/Subscribe)