2012-10-21 41 views
0

我在这个主题上搜索了一下,但是我找不到任何有用的东西。这是我很困惑的代码:Typecast char as NSInteger

const char *beginning = "Love"; 
NSLog(@"%s", beginning); //Love 
NSLog(@"%d", (NSInteger)beginning); //14687 

(NSInteger)beginning是什么意思?为什么它输出14687?

谢谢。

+0

我不是真的想“做”任何事情。只是玩弄代码haha – yeesterbunny

回答

3

您不是将一个字符转换为NSInteger,而是将一个指向字符数组的指针转换为NSInteger。 该值是指向该字符数组的指针的值。

参见指针和数组此链接教程用C

http://pw1.netcom.com/~tjensen/ptr/pointers.htm

+0

该值是指向该字符数组的指针的“值”?那是什么意思?你的意思是该值是指向该字符数组的指针的“存储单元”? – yeesterbunny

+0

指针是存储单元地址的值。 - 是的!那种,你到达那里。 –

+0

aaah我明白了,好的,谢谢! – yeesterbunny