69,336
社区成员
发帖
与我相关
我的任务
分享
int *test(int *p)
{
int q;
return p;
}
#include<stdio.h>
#include<time.h>
int test(int *p)
{
int q;
return q=(int)p;
}
int main(void)
{
int aa[3] = {1,2,3};
int c = test(aa);
printf("c=%x, aa=%x\r\n", c, aa);
return 0;
}
输出:
c=18ff3c, aa=18ff3creturn (int) p;
问题在于,结果是实现定义的。如果结果不能被整数类型表示,则行为还是未定义的哩。#include <stdio.h>
int* test(int **p)
{
return *p+1;
}
int main() {
int d[2]={1,2};
int *p;
p=&d[0];
p=test(&p);
printf("%d\n",p[0]);//2
return 0;
}
unsigned int GetPtrAddr(int* p)
{
return (unsigned int)p;
}