关于指针数组
关于字符型数组
关于字符型指针
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
char *Dayname();
char *str=Dayname();
printf("%s\n",str);
return 0;
}
/*char *Dayname(int n)
{
char *name[]={"illegalday","mon","tue","wed","thu","fri","sat","sun"};
return((n<1||n>7)?name[0]:name[n]);//返回的是常数空间的地址,编译没有问题
}*/
/*char *Dayname()
{
char name[]={"mon"};
return(name);//返回的是数组的地址,数组是局部变量有警告,但数组名等同于字符串首地址,仍可以打出
}*/
char *Dayname()
{
char *name="mon";
return(name);//返回的是常数空间的地址,编译没有问题
}
关于局部变量
关于间接的局部变量
int main()
{
int *num;
int *Day();
num=Day();
printf("%d\n",*num);
return 0;
}
int *Day()
{
int x=18,*num;
num=&x;
return(num);//返回的是常数空间的地址,编译没有问题
}