C++ primer plus 第四章

C++ primer plus 第四章,第1张

C++ primer plus 第四章 1、数组

        typedefName arrayName[arraysize]

2、字符串

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

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

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

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

        (3)strlen与sizeof区别:

                char name[20] = "lucy";

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

                strlen只计算数组中不为""的元素,因此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(不同系统不一样);     

             

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5658650.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存