use*_*753 2 c pointers
可能重复: 带指针的C问题
我需要一些指针帮助,特别是以下示例:
#include <stdio.h> int main() { int *i, *j; i = (int *) 60; j = (int *) 40; printf("%d", i - j); return 0; }
此代码生10成为输出.我只需要知道i - j这里究竟做了什么.
10
i - j
Max*_*Max 11
i并分别j指向内存位置60和40.
i
j
60
40
你在这里做的是指针减法.如果i和j是字节指针(字符*),i-j将是20,正如人们所预料.
i-j
20
但是,对于其他指针,它返回两个指针之间的元素数.在大多数系统(int *)60 - (int *)40中5,因为在这20个字节中有5个4字节整数的空间.显然,您的平台有16位整数.
(int *)60 - (int *)40
5
归档时间:
13 年,7 月 前
查看次数:
185 次
最近记录: