目标C:7 - 1 = 3?

Joh*_*oan 7 c iphone math pointers objective-c

NSLog(@"Before: %d",currentArticle);
currentArticle--;
NSLog(@"SUBTRACT %d",currentArticle);
Run Code Online (Sandbox Code Playgroud)

"currentArticle"是一个整数.这只是在我的控制台中回显一次.如果我不运行此减法,则数字"currentArticle"保持为7.

这是在主线程中运行,每个用户交互只运行一次.

我也试过了

currentArticle = currentArticle - 1;
Run Code Online (Sandbox Code Playgroud)

结果相同.我服用疯狂的药吗?

谢谢!

编辑:

声明如下:

extern int *currentArticle;
Run Code Online (Sandbox Code Playgroud)

稍后分配为:

currentArticle = 0;
Run Code Online (Sandbox Code Playgroud)

我尝试重写为:

int *curArticle; // in my .h file

curArticle = 1;
Run Code Online (Sandbox Code Playgroud)

然后我跑了

curArticle--;
Run Code Online (Sandbox Code Playgroud)

它仍然减少两个......

我已经逐步完成了代码并确保没有其他调用这个变量.感谢您的反馈到目前为止,我会继续抨击它.

Cal*_*leb 17

我同意上面的评论.我打赌你的代码看起来像一美元:

int *currentArticle = 7; // or something
Run Code Online (Sandbox Code Playgroud)

currentArticle可能甚至不是指向int的指针,具体而言,它很可能是指向某个4字节类型的指针.' - '和'++'运算符在应用于指针时,会按指向的类型的大小递减或递增.