问题加起来整数xCode

时间:2011-03-29 14:36:25

标签: c pointers int

我有这个恼人的问题,我找不到答案。 出于某种原因,我的整数是二进制的,而不是十进制的。

这只是这个小部分,当我打印我的整数时,我得到: 0 4 8 12 16 ...

我使用的代码:

    int *iInt=0;
for (Books *booktitles in appDelegate.book_sos.books ) {
    iInt =(int*)iInt + 1;
    NSLog(@"AAAAAAA%d",iInt);

}

我和NSNumber,NSInteger一起尝试过。

有人知道我哪里错了吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

您正在创建一个指向int的指针,而不是int。不要那样做。

int iInt=0;
for (Books *booktitles in appDelegate.book_sos.books ) {
    iInt = iInt + 1;
    NSLog(@"AAAAAAA%d",iInt);
}

答案 1 :(得分:0)

从你的iInt声明中丢失星号,不要强制转换为int*。星号表示变量是指向给定类型的指针,当您递增指针时,它会增加指针的大小,或者在这种情况下增加4个字节。您的代码应如下所示:

int iInt=0;
for (Books *booktitles in appDelegate.book_sos.books ) {
    iInt =(int)iInt + 1;
    NSLog(@"AAAAAAA%d",iInt);

}

有关同一问题的其他版本,请参阅Objective-C: How does 7-1=3?

请注意,这是一个基本的C问题;它与Xcode或Objective-C无关。任何平台上的任何C编译器都会得到类似的结果。