读书人

unsigned char 与unsigned short转换的

发布时间: 2012-04-01 17:23:46 作者: rapoo

unsigned char 与unsigned short转换的一道题,怎么会输出1+2=65534 ?

C/C++ code
#include <stdio.h>#include <stdlib.h>unsigned short *Sum(unsigned char a,unsigned char b){    unsigned short S=0;    S=a+b;    return &S;}int main(void){    unsigned short *p=NULL;    unsigned char a=1,b=2;    p=Sum(a,b);    printf("%u+%u",a,b);    printf("=%u",*p);    getchar();    return EXIT_SUCCESS;}

怎么会输出1+2=65534?想了半天没弄明白?求教各位大侠。

[解决办法]
unsigned short S=0;
S=a+b;
return &S;
返回栈上东西?
[解决办法]
你那是返回了个局部的指针,在函数调用完的时候,就被释放掉了
[解决办法]
s被返回时内存已经被回收

读书人网 >C语言

热点推荐