1月25日

  这周到镇江、扬州出差了几天,有一点感受就是那里人都不多,街道上人少车也少,除了一条主干道路晚上也会堵车外。这两个城市行政级别上都是地级市但是比我想象中的人要少很多,不知道是不是现在正在春运的时间段里,但是应该对地级市影响不大啊。而且火车站人也不多。
  另外在沿途新建的一些高铁站周边,只能用荒凉来形容了(镇江南等),但是你看昆山南站,边上全是楼房、住宅、商场,可以说非常繁华了。因为离上海近!所以我觉得中国的人口还是集中在了北上广这类的大城市。
  江苏这边苏北的几个城市明显没有苏南的城市发达,比如苏南的无锡、昆山,还是因为离上海近!所以苏北的城市人口少,市场做不大,发展不起来,但是适合生活居住。

指针类型的定义

在C/C++中定义指针类型的变量,使用:
数据类型 * 指针变量名

例如:

int * p_update;

*操作符两边的空格是可选的。

C程序员习惯使用这种格式:

int *ptr;

这强调*ptr是一个int类型的值。

C++程序员习惯使用:

int* ptr;

这强调int*是一种复合类型,是指向int的指针。

在哪里添加空格对于C++编译器来说是没有任何区别的。不过在书上看到事例中的指针定义都是在*左右各加一个空格。

C语言计算两个日期之间的天数

计算两个年月日之间的天数,思路是分别算出日期的总天数然后相减。

要考虑闰年的情况,判断闰年的口诀:4年一闰,100年不闰,400年再闰。
((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)

网上找了一个(偷懒= =!),修改下如下:
#include <stdio.h>
int sum(int y,int m,int d)
{
  unsigned char x[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
  int i,s=0;
  for(i=1;i<y;i++)
    if(i%4==0 && i%100!=0 || i%400==0)
      s+=366;//闰年
    else
      s+=365;//平年

  if(y%4==0 && y%100!=0 || y%400==0)
    x[2]=29;

  for(i=1;i<m;i++)
    s+=x[i];//整月的天数
  s+=d;//日的天数

  return s;//返回总天数,相对公元1年
}

void main()
{
  unsigned char y1,m1,d1,y2,m2,d2;
  int s1,s2;

  printf(“输入第一个年 月 日:”);
  scanf(“%d %d %d”,&y1,&m1,&d1);
  printf(“输入第二个年 月 日:”);
  scanf(“%d %d %d”,&y2,&m2,&d2);

  s1=sum(y1,m1,d1);
  s2=sum(y2,m2,d2);

  if (s1 > s2)
    printf(“相差天数:%ld\n”,s1-s2);
  else
    printf(“相差天数:%ld\n”,s2-s1);

}

以上代码VC6编译测试通过。

虽然这个思路显得有些笨,但是其它算法,代码太长太复杂,要考虑多种情况,不如直接算两个日期距离公元元年1月1日的天数,然后相减。