指针地址的输出

来源:百度知道 编辑:UC知道 时间:2024/05/30 20:24:08
#include<stdio.h>
void main()
{
int a=50;
int *ip=&a;
printf("%d\n",ip);
printf("%d",ip+4);
}若第1个printf语句输出158第2个为什么是174呀?
int型不是只有2个字节吗?那样的话应该是166呀?为什么不对呀谢谢了!

你可以用sizeof(int) 看看你的编译环境下int是占多少字节的.
这单片机中可能是2bytes,但在xp或者unix中一般是4bytes

谁说的int 一定是2byte,以前我实验过,win98下,VC上,int = 2byte
win2k/xp 下 int=4byte
你给printf 传递的是 指针吧 而不是数字,所以值不一定是什么吧....

应该是XP下跑.int = 4 byte

ip+4
158+4*4 = 176

int 型是4个字节,现在的操作系统一般都是32位的,他的int一般都是32位,四个字节。要想确定知道int的大小,sizeof(int)就知道。
另外,xp下,一般的long的长度和int是相等的。与c预言书上对应的是short int,也就是 short。