1.cin>>字符变量地址:把输入的一串字符从这个地址表示的内存单元开始一次摆放最后加'\0';
2.c++ string类型长度限制1G;
3.string类型仍可使用string[i],长度使用string.size();strlen(string.c_str());
4.计算两个日期相差天数及周几:
struct Data
{
int year;
int mouth;
int day;
};
bool isleap(int i)
{
return i%4 == 0 && i%100 != 0 || i%400 == 0;
}
int MouthOfDays(int y, int m)
{
int mou[12] = {31,0,31,30,31,30,31,31,30,31,30,31};
if (m != 2)
return mou[m-1];
else
return 28 + isleap(y);
}
int Days(Data d)
{
int day = d.day;
for (int i = 1; i < d.year; ++i)
day += 365 + isleap(i);
for (int i = 1; i < d.mouth; ++i)
day += MouthOfDays(d.year, i);
return day;
}
void show(Data d1, Data d2)
{
cout<<"相差:"<<Days(d2) - Days(d1)<<endl;
cout<<Days(d2)%7<<endl;
cout<<Days(d1)%7<<endl;
}
5.有extern即为声明,无则为定义
6.指针有类型,struct t{int i;int j}; t s; *&s为变量s;*&s.i为变量s.i;虽然&s和&s.i相同
7.typedef:1.定义变量:int *p; 2.要定义的名字替换变量名:int *A; 3.添加tepydef:tepydef int *A;
8.地址运算依变量长度为单位
9.*p++运算顺序,* ,++均为单目平级,从右向左运算
10.int a[5] = {1,2,3,4,5}; *(a+1) = a[1]; int *p = a+1; p-a = 1;
11.比较本质是相见
12.char *p = new char[10]; delete[] p;
13.使用空指针(NULL)编译程序会报错
14.getline(cin, str);读取整行数据,包括中间的空格,其中str为string类型。get相关几个函数:http://www.cnblogs.com/flatfoosie/archive/2010/12/22/1914055.html