1.endl等对于cout来说有特殊含义的特殊符号被称为控制符

2.面向对象编程(OOP);

3.一些关键字:


autobreakcase char const continuedefaultdodouble else
enumexternfloatforintinlineifgotolongregister
returnshortsignedstructstaticsizeofswitchtypedefunsignedunion
volatilewhilevoid






4.C++命名规则:① 在名称中只能使用字母字符、数字、下划线;② 第一个字符不能是数字;③ 区分大小写;④ 不能使用C++关键字;⑤ 以两个下划线或下划线和字母开头的名称被保留给实现(编译器及其使用的资源)使用,以一个下划线开头的名称被保留给实现,用作全局标识符;⑥ C++对于名称的长度没有限制,但有些平台有限制。

5.提醒自己:养成命名的一致性,整体性;

6. <climits> 定义了各种限制的符号名称;如INT_MAX、CHAR_BIT     课本P41(待补充)

7.新的初始化语法:int wrens(432);

                              int a={24};

                              int a{24};

                              int a{};  //这种情况下,a将被初始化为0

8.

      int ch;//为了和EOF比较,最好不定义为char
    int cnt=0;
    while ((ch=cin.get())!=EOF) {
        cout.put(char(ch));
        cnt++;
    }
    cout<<endl<<cnt<<" characters read\n";

9.

   int i=020,j=04;
  cout<<i+j<<endl;  //输出20
  cout<<i&j<<endl;  //编译时报错!注意运算符的优先级

10.cin使用空白(空格、制表符和换行符)来确定字符串的结束位置,(面向单词);

    面向行(结束符:换行符):getline()丢弃换行符

                                                get()      保留换行符

#include<iostream>
using namespace std;
int main(){
    char ch1[10],ch2[10];
    cin.getline(ch1,10);
    cin.getline(ch2,10);
    cout<<ch1<<endl<<ch2;
}

    思考以上程序,如果第一行输入15个字符会怎么输出?为什么?

    如果输入行包含的字符数比指定的多,getline()和get()将把余下的字符留在输入队列中,而getline()会设置失效位,并关闭后面的输入;但可以用cin.clear()命令来恢复输入;

    cin.get()不丢弃换行符,实现连续输入两行可以采用下述方法:

cin.get(ch1,10);
cin.get();
cin.get(ch2,10);
//可以写成:
cin.get(ch1,10).get();
cin.get(ch2,10);

11.

cin>>year;
cin.getline(adr,80);

cin读取年份之后,将回车生成的换行符留在了输入列中,所以用户根本没有输入地址的机会。

解决:

cin>>year;
cin.get();           //也可以将调用合并  (cin>>year).get();
cin.getline(...);

12.string类        string str1,str2="abc",str3="def";

    赋值:str1=str2;

    运算符合并:str1=str2+str3;

                        str2+=str3;

    计算长度:int len1=str2.size();        (str2是一个对象,而size()是一个类方法)

    将一行输入读取到string中:getline(cin,str1);

13.结构

struct myst{
    string str;
    int num;
};
int main(){
   myst a1,a2;
   a2={
        "hhq",
        15
   };
   a1=a2;
   cout<<a1.num;
}

发现可以将结构赋给另一个同类型的结构

14.int * 是一种符合类型,是指向int 的指针;

15.一定要在对指针应用解除引用运算符*之前,将指针初始化为一个确定的、适当的地址;

16.new和delete

int *p=new int[10];
delete [] p;

17. 对数组用sizeof得到数组长度,而对指针用则得到指针的长度;

18. 数组名->第一个元素的地址

      对数组名应用&->整个数组的地址

short tell[10];
cout<<tell<<endl;        //tell是一个2字节内存块地址 
cout<<&tell<<endl;       //&tell是一个20字节内存块地址

19. 

char ch[10]="innocent";
char *p;
p=ch;
cout<<p<<" address: "<<(int *)p;        //(int *)p 显示为该字符串的地址

20. 创建动态结构时,不能使用成员运算符句点;

21. C++中允许为函数提供默认参数,又名缺省参数

22.获取系统的当前时间

void showCurTime(){
    const char *wday[7]={"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };
    time_t ptime;
    struct tm *p;
    time(&ptime);       //获取当前日期和时间
    p=localtime(&ptime);    //取得当地时间
    cout << "当前日期、时间 : " << p->tm_year+1900 << "." << p->tm_mon+1 << "." << p->tm_mday;
    cout << " <" << wday[p->tm_wday] << "> ";
    cout << p->tm_hour << ":" << p->tm_min << ":" << p->tm_sec << endl;
}

23.

#include<cmath.h>
int a = 1, b = 2;
int f = abs(a-b);

0(YZJ1%ZGR(GKT1ZE2RNX~X.png

点赞(13)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 4 条评论

6年前 回复TA

@lalalala 谢谢^_^

6年前 回复TA

@验题君 谢谢君!

lalalala 6年前 回复TA

潜力十足!

验题君 6年前 回复TA

很棒!