首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

unsigned char 与unsigned short转换的一道题,如何会输出1+2=65534

2012-04-01 
unsigned char 与unsigned short转换的一道题,怎么会输出1+265534 ?C/C++ code#include stdio.h#includ

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被返回时内存已经被回收

热点排行