个人学习笔记c/c++(2)

这周主要学习了指针:主要是想记录自己的慢慢成长!

1.指针也是变量,只是存储的值是一个地址   32位占4字节,64位占8字节
   系统不允许我们访问0的地址
 
2.指针无法相加  同一数组 相减得出的数是它们相隔的数字数量,而不是相隔的数量乘以类型字符数
                         不同数组 相减得出的就是地址的差除以数据类型,其实就没有什么意义了,因为地址差并不固定
                         不同类型的指针无法加减

3.int* p;想指谁就指谁,想改谁就改谁
  int const* p;可以指别人,但是不能改
  int* const p;不能指别人,但是可以改
 const int* const p;不能指,不能改

4.void型指针,存储了地址,但是无法访问地址的值;
   如果想访问地址,就得做对应的强制类型转化
   而其它类型指针可以隐式转换为void型,可以直接让无类型的指针指向有类型的地址
   强制类型转换  char * p1 = (char *)p;  p为void型指针、

5.int compare_char(const void *a, const void *b)  函数定义
   int (*fp)(const void *, const void *)  定义函数指针
   fp = &compare_in                           函数指针指向函数的地址
   (*fp)(&x, &y);                                   调用函数
   fp(&x,&y);                                        调用函数

6.类型&name  定义别名   不能为没有定义的变量定义别名
   引用可以定义多个,引用有自己的空间   引用就类似于常指针 int* const p = &a;
   当实参传给形参引用的时候,只不过是c++编译器帮我们程序员手工取了一个实参地
   址,传给了形参引用(常量指针)

7.为了让程序更加的健壮,一个指针传入函数时,首先要判断是否是空指针
   另外一些正负之类的问题有需要的时候也应该判断

8.
1、栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量值等。
2、堆区(heap):一般由程序员分配释放,随叫随到,挥之即走。
3、全局/静态区(static):全局变量和静态变量的存储是放在一起的,在程序编译时分配。
4、文字常量区:存放常量字符串。
5、程序代码区:存放函数体(包括类的成员函数、全局函数)的二进制代码

9.只有new分配内存,而不用delete释放  有可能会造成内存泄漏
   new和delete是运算符不是函数,执行效率高
   c语言malloc和free
   动态内存分布对于防止栈区溢出很有帮助

10.静态变量只能在函数中使用,但是会永远存在

11.void *memcpy(void *dest, const void *src, size_t n);内存拷贝函数
功能:从源 src 所指的内存地址的起始位置开始拷贝 n 个字节到目标 dest 所指的
          内存地址的起始位置中

12.常见错误
1)所申请的动态内存不要多次释放
2)忘记释放内存,造成内存泄漏
3)释放的地址不是申请时的地址 
4)释放空指针
5)已经释放了所申请的动态内存,但依然继续引用
6)越界访问

13.结构体可以直接赋值,将一个结构体直接赋给另一个结构体。数组不行
    结构体变量作为参数传递是值传递,和int等类型基本一样

14.当一个变量有几个固定可能的取值时,可以将这个变量定义为枚举

15.#pragma once //防止整个头文件被包含多次
     #ifndef … #define …#endif //防止#ifndef 和#endif 包围的代码包含多次

16.判等的时候变量最好放在前面

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值