C/C++ 基础重拾


1.复制指针时只复制指针中的地址,而不会复制指针指向的对象
2.解决护栏柱错误的根本 是 从思想认知上搞定. 数组的序号为偏移量.
  也即: 数组的第一个元素为arrName[0],其偏移量为0
3.使用strcpy函数时要注意,若是源串的长度大于目标串的长度,将会覆盖缓冲区后面的内容
  所以尽量使用strncpy来替代strcpy
4.数组可以使一维或者是多维.只要数组包含的元素为内置类型或者有默认构造函数的类,就可以初始化
5.数学运算符有5个: +(加) -(减) *(乘) /(除) %(求模)
6.不同版本的语言标准,会出现不同的结果:拿除法来举个例子讲
    C89 -22/7=-3;C11 -22/7=-4
7.对于除法,若是除数或者被除数当中有一个为浮点数,编译器将产生浮点商.
   但是,此时若将结果赋值给一个整形左值,结果将会被截短
8.切记表达式都要有值
9.可以将每个表达式的值视为真或假.如果表达式结果为零,则返回false,否则返回true
10.一个简单的使用原则就是:new和delete、new[]和delete[]对应使用
11.使用delete常见的错误小结:
    (1)delete的时候,系统会自动调用已分配的对象的析构函数(基本类型的释放由系统规定)
 (2)delete[] 释放一块内存时,后面的指针应该指向此内存的首地址.
 (3)自己分配的内存,做且仅做一次释放处理
12.再谈一次 关于基类与派生类的问题:
   (1)至于为什么会有派生这一动作,最基本的原因就是公共部分都在基类中,派生类只是关注自己特殊的增量部分
   派生的结果是派生类里面包含有基类里面的全部组成部分(BTY:只是由于private的限定而不能直接访问到而已)
   (2)对于C++而言,只有public的派生才能把派生类的对象指针(或引用)赋值给基类的指针(或引用).private,protected均是不可以
      对于Java 而言,由于不存在 派生分类,此条不成立
13.对于指针,其存储的地址以及存储的地址处的值进行区分至关重要. 不要把指针指向的地址与存储在地址处的值混为一谈
14.函数的原型由 类型+函数特征+';' 三部分构成.
   类型 即为 返回值。函数特征 则由 函数名与参数列表 组成。发生函数重载是由于函数名相同而参数表列不同的结果.
15.关于const 对指针的修饰
   理解这些声明的技巧在于:查看关键字const右边来确定什么被声明为常量.如果const右边是类型,则值是常量;若右边是指针变量,则指针本身为常量.示例代码:
   const int* p1; //the int pointed to is constant
   int* const p2; //p2 is constant,it cannot point to anything else
16.如果对象不应该被修改,则按引用传递它时应用const进行保护.
17.务必将指针设置为空,而不要让它未被初始化(悬浮).
18.不要使用已经被删除的指针.
19.不要将指针删除多次.
20.自由存储区(堆)中的对象在函数返回后仍然存在.
21.引用和其他变量的区别在于,声明引用的同时必须对其进行初始化
22.(使用指针或引用)按引用将参数传递给函数时,原始对象的地址而不是对象本身的内容被存储到堆栈中.
23.按值传递参数到函数时,会发生一次临时副本拷贝.同样,从函数返回对象时,也会发生一次副本拷贝.
24.按引用传入参数是尽量应该使用引用这种方式.从函数中返回自由存储区的对象时,尽量使用指针(若是使用引用有空引用的可能)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值