int和++ new每次都增加2

Luu*_*sen 3 iphone int cocoa cocoa-touch objective-c

只是一个愚蠢的问题:我有一个简单的计数器,但似乎它给出了我期望的双重值.

short int *new = 0;
++new;
NSLog(@"Items: %hi", new);
Run Code Online (Sandbox Code Playgroud)

这会返回:

项目:2

相对较新的Cocoa,并且仍在制定细节,如上面的清晰形式......

Poi*_*nty 17

你没有整数变量,你有一个指向整数变量的指针(一个短整数,具体而言).它增加2,因为短整数是两个字节长.指针变量保存另一个值的内存地址.增加指针意味着"使这个指针指向内存中的下一个东西",其中"thing"是指针被声明指向的值的类型.指针double每次增加8.

声明中的"*"使其成为指针.如果你只想要一个int,你只需要写

short int new = 0;
++new;
Run Code Online (Sandbox Code Playgroud)