C++ primer plus 第四章

1、数组

        typedefName arrayName[arraysize]

2、字符串

        (1)字符串的尾部为"\0";

        (2)字符串常量其实代表字符串所在的内存地址:

                const char* p = "s"是合法的;

                char p ="s"是不合法的,其原因在于"s"代表了其所在地址,不是char类型的,而是char*           类型的。

        (3)strlen与sizeof区别:

                char name[20] = "lucy";

                sizof计算整个数组的长度,无论其内容是否为"\0",因此sizeof(name)=20;

                strlen只计算数组中不为"\0"的元素,因此strlen(name)=4;

         (4)get和getline的区别:

                getline:获取一行输入:cin.getline(readbuffer,readlength),遇到换行时退出函数,getline会将换行符读取;

                get:获取一行输入:cin.get(readbuffer,readlength),遇到换行时退出函数, get不会将换行符读取,还会将其留在输入序列中,因此在使用get后还需要调用不带参的get()函数获取换行符:cin.get(readbuffer,readlength).get();

3、结构体

              略

4、共用体

        能够存储不同的类型,根据选择的显示类型可以进行不同的显示,因此可以进行类型转换。

5、枚举类

         略

6、指针和自由存储空间

        C++在运行时进行决策,例如分配多长的内存空间。核心是new与delete,在堆中申请内存,在堆中释放发内存,可以通过这种方式自由管理指定内存的生死。   

        应知道几个知识点:(1)怎么new的怎么delete:char* p = new char[20]; delete []p;

                                                                                        char *p = new char;       delete p;

                                          (2)可以对空指针进行delete,不会报错;

                                          (3)new失败后,返回的值为空指针,可以用来判断。

                                          (4)使用指针前必须判断该指针是否初始化不为空指针。

         指针与数组的关系:

        (1)指针大多数况下等价于数组名:

                        char *p; char str[20]="i love c"; p = str;

                        p[0] 与str[0] 表示同一个意思:数组str的第0个元素;

        (2)数组名是常量,不可自增或自减,指针可自增或自减:

                        p++(√);   str++(×)

        (3)对其进行sizeof运算时,sizeof(数组名)为数组的长度,而sizeof(指针)为指针所占内存长度: sizeof(str) 的值为20,而sizeof(p)的值为4或者8(不同系统不一样);     

             

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值