我遇到了这个恼人的问题,但找不到答案。 由于某种原因,我的整数是二进制的,而不是十进制的。
这只是一小部分,当我打印我的整数时,我得到: 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 。
有人知道我哪里可能错了吗?提前致谢!
最佳答案
丢失 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 编译器都会得到类似的结果。
关于c - 整数相加问题xCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5474272/