LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 689|回复: 4

strcpy(str,&ptr[11])是什么意思?

[复制链接]
发表于 2004-5-14 18:14:25 | 显示全部楼层 |阅读模式
这是个显示当前时间的程序。
  1. int
  2. main(void)
  3. {
  4.         struct timeval          tv;
  5.         static  char            str[30];
  6.         char                    *ptr;
  7.         if(gettimeofday(&tv,NULL) <0) {
  8.                 perror("gettimeofday error");
  9.                 exit(1);
  10.         }
  11.         ptr=ctime(&tv.tv_sec);
  12.         strcpy(str,&ptr[11]); /* &ptr[11]的意思不懂 ,请详细点解释*/
  13.                 /* Fri Sep 13 00:00:00 1986\n\0 */
  14.                 /* 0123456789012345678901234567 */
  15.         snprintf(str+8,sizeof(str)-8,".%06ld",tv.tv_usec);
  16.         printf("012345678901234567890123456789\n");
  17.         printf("%s\n",str);
  18.         return(0);
  19. }
复制代码
发表于 2004-5-14 19:40:02 | 显示全部楼层
&ptr[11]就是取ptr[11]的地址嘛,得到的指针指向"00:00:00"的第一个"0"
 楼主| 发表于 2004-5-14 22:26:59 | 显示全部楼层
最初由 libinary 发表
&ptr[11]就是取ptr[11]的地址嘛,得到的指针指向"00:00:00"的第一个"0"

谢谢斑竹,还有不明白
        ptr=ctime(&tv.tv_sec); 这句是把结果的首地址赋值给ptr吗?


        strcpy(str,&ptr[11]); /* &ptr[11]的意思不懂 ,请详细点解释*/这这里是把ptr[[11]的首地址copy到str的首地址?ptr[1]有同时分配11个字节的动作吗?
麻烦解释一下,我的基础差!!:thank
发表于 2004-5-14 22:50:16 | 显示全部楼层
ctime返回一个字符串,这个字符串是由ctime在内部分配的,下一次调用ctime就会破坏这个字符串,所以要把它拷出来。
ptr是个指针,指向ctime返回的字符串的第一个字符,&ptr[11]就指向这个字符串的第12个字符。
str相当于&str[0]
 楼主| 发表于 2004-5-14 23:13:07 | 显示全部楼层
谢谢斑竹!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表