c - 整数相加问题xCode

标签 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 。

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

最佳答案

丢失 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/

相关文章:

c - 为什么BST插入末尾需要返回?

从文件或标准输入读取并删除空行的 C 程序

c++ - C 或 C++ 中的标准输入 : Spotify: Reverse Binary Puzzle

C错误: size of array is too large

java - 在不转换为字符串的情况下检查 int 是否是回文?

c - double 和整数的求和和乘法不起作用

c - 为什么 Lua 报告 lua_pushlstring 未定义?

c - 为什么这段 C 代码有效?

c - 将双指针分配给矩阵

c - 修改 C 函数内的二维 malloc 数组