还是指针的问题。
#include <stdio.h>
#include <time.h>
#include <string.h>
int main()
{
time_t t;
//time_t *p = &t; 使用这种方式编译不会出错
time_t *p;
p = &t;
char s[30];
time(p);
strcpy(s,ctime(p));
printf("%s\n",s);
}
time_t *p = &t;和time_t *p; p = &t;有区别吗?为什么前者编译没问题,后者编译报错。1>f:\cstudy\lesson11\lesson11\lesson11\time.c(24): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>f:\cstudy\lesson11\lesson11\lesson11\time.c(26): error C2065: “s”: 未声明的标识符
指针 C语言
[解决办法]
标准太古老了
要求声明写在 块首部
你写成time_t *p = &t;依然是一个声明
你写成
time_t *p;
p = &t;//这个不是声明 这个语句下面不可以再写 声明
char s[30];//你的这个声明错了