C语言小知识点积累

KP_1

--VOID*

其他类型的指针可以直接赋值给void*类型指针, 不需要强制类型转换, 但是将void*类型的指针赋值给其他类型的指针, 需要强制类型转换。 

KP_2:

判断指针是否为空,可以通过if (ptr)表示指针有效(不为空)。 if(!ptr)表示指针无效(为空)。

KP_3:

对整型进行取非值, 如果为零, 取非则为1, 如果非零, 取非则为0.

KP_4:

struct 使用: http://c.biancheng.net/view/2031.html, 这个网站还涉及socket编程。 自己可以搞一下。 

KP_5:

静态成员变量的初始化在类外面
private:
    int width;
    int height;
    static int count;
};
int Rect::count=0;

KP_6:

在栈上定义对象,也可以指定构造函数。 类型 变量名(参数) 其中类型和参数决定了调用哪个构造函数, 构造函数就是由类型和形参组成的。

Rect r; Rect r1(r);

注:写成Rect r(); 是不允许, 不加括号,就是调用其无参数构造函数。  

KP_7:

类成员变量不初始化,是个随机值, 并不一定初始化为零。非静态成员变量的初始化, 有3种, 1)构造函数内, 2)初始化列表, 3)就地初始化 = 或者 {} (优先级高)。
https://www.cnblogs.com/zxpo/p/3891981.htm

  3 class CBase{
  4     public:
  5     CBase(){cout<<"mem default="<<mem<<endl;}
  6     CBase(int i):mem(i){cout<<"mem init="<<mem<<endl;}
  7     int mem{10};
  8 };

KP_8: 内存泄露被遗忘的点.
类指针成员变量现指向一个堆内存, 接下来要让它指向另外一个堆内存, 需要先释放之前的堆内存。

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值