关于sizeof(*p+1)的那些事

今天老铁在写程序时发现一个意外,在char a[]={1,3,5,7,9},*p=a;程序求sizeof(*p+1)时遇到一些意外,本来以为会是1,结果却出意料的是4,这就有些尴尬了,经过多次测试了解了,原来是在求解sizeof(*p+1)时,*p=char 1,然后进行运算char1 +1的结果是char 1+int 1,因为在数值运算时系统默认为1是int型的,因此结果为int 2,所以sizeof(*p+1)=4,而不是1.


关于sizeof(*p+1)的那些事