main和函数中变量地址的区别

时间:2017-11-27 22:18:19

标签: c

一个简单的问题,为什么函数和main中的地址不一样?我尝试在没有va_list的情况下实现printf实现,这对我来说是必要的,或者它是更好的实现它,但我想早点知道答案。

 void func (char *format, ...)
 { 

       char *p = (char *) &format + sizeof(format);

       char *s = format;
       for(;*s != '\0'; ++s) {
         if (*s == '%') { 
            switch (*(s+1))
            {

              case 'd':
                printf("%d - address\n", ((int *)p)); //This should point on second argument
                p += sizeof (int);
                ++s;
                break;
            }
         }
       }
 }

int main(int argc, char** argv) {
    int a=2123213;
    printf("%d - address\n",&a);
    func("text%d",a);
}

0 个答案:

没有答案