重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include"stdio.h"
成都创新互联2013年至今,是专业互联网技术服务公司,拥有项目成都网站建设、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元台儿做网站,已为上家服务,为台儿各地企业和个人服务,联系电话:18982081108
void main()
{
int a,b;
scanf("%5d",a); //从键盘上读取整数变量a的值,最多5位数
printf("a=%d\n",a); //输出a=XXXXX (可以是1~5位数)
scanf("%5d%3d",a,b); //从键盘上读取整数变量a的值最多5位数,b的值最多3位数
printf("a=%d\nb=%d\n",a,b); //输出两行,a=XXXXX b=XXX
}
#include stdio.h
void f()
{
}
void main()
{
printf("%u\n", f);
printf("%u\n", f);
printf("%p\n", f);
}
主函数中前两行%u表示输出无符号的十进制,而第三行%p表示输出地址,其结果是一个十六进制的数,你将其转换成十进制,你会发现与前两行结果一样。
1、函数直接返回一个指针类型即返回地址。
2、C语言属于高级编程语言。在C语言中一个函数不能返回局部地址即指针。
例:
int * func(void)
{
int a= 10;
int *p = a;
return p;
}
a变量的区域是func()函数,在函数内有效,出了函数就释放了,此时p指向的是一个未知
地址,属于错误用法。
正确用法:
int *p = NULL;
int * func(void)
{
p = malloc(sizeof(int));
if(p!=NULL)
{
*p = 10;
}
return p;
}
开头的地址?直接把函数名用16进制数出来
如printf("%x\n",main());