IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 个人学习笔记c/c++(2) -> 正文阅读

[C++知识库]个人学习笔记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.判等的时候变量最好放在前面

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-12 19:24:25  更:2021-11-12 19:26:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:26:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码