【C/C++笔记】 C/C++常见问题笔记 1
本文为笔者在学习和使用C/C++时遇到的一些问题,在此总结记录下来。篇内借鉴了很多文章,也加上了一些自己的想法,如有不妥之处,还请不吝赐教!
- 引用和指针的区别:
1 |
创建时: 引用创建的时候必须要初始化,指针不必。 |
---|---|
2 |
存储时: 引用不占内存空间,指针在栈中占用空间。 |
3 |
特 点: 引用是变量或对象的别名。 |
4 |
指 向: 指针可以改变指向对象,引用不可以!!! |
5 |
注意 !: 引用不能指向空值。 |
int main()
{ int a = 10, b = 20, &p = a; p = b; printf("a=%d b=%d p=%d\n", a, b, p); return 0;
}
//输出是: a=20 b=20 p=20.
//并不是p指向了a,而是把b的值赋给了a
常引用&引用详解:送上一篇好文章@觅思.澈
- const修饰符几种用法
int const a
|
表示a是一个常量 |
const int a
|
同上 |
int *const a | 表示a是一个指针常量,必须进行初始化(拒绝改写、only read) |
int const *a | 可以改变指向的对象,但不能直接改变其指向变量的值 |
const int *a | 同上 |
int const &a | 表示a是一个常引用,不能改变a中的值 |
const int &a | 同上( 注:没有 int &const a这种写法) |
- C/C++运算符优先级
转载:c语言运算符优先级
- 指针函数与函数指针
指针函数 |
int *func( int a) | 指针函数是返回值为指针的函数。 |
---|---|---|
函数指针 | int ( *f)( int a) | 函数指针是一个指针,它指向一个函数。 |
由于()运算的优先级高于 * ,所以函数名先结合(), 再结合 int *
int max( int a, int b) {return a>b?a:b;
} int min( int a, int b) {return a<b?a:b;
}int main()
{int (*func)( int a, int b);func = max;printf( "%d\n", func( 5, 3));func = min;printf( "%d\n", func( 5, 3));return 0;
}// 输出结果: 5 3
// func指针两次分别指向不同的函数.
- 内存分配和管理函数
void *calloc( size_t num, size_t size) | 分配一块指向num的size长度的数组空间,并进行初始化 |
void *malloc( size_t size) | 分配指向一个大小为size的空间,如果错误则返回NULL |
void *realloc( void *ptr, size_t size) | 将ptr指向的空间改为size大小,如果错误则返回NULL |
void free( void *ptr) | 释放ptr指向的空间,以供以后使用 |
注意!以上分配的空间在逻辑地址上都是连续的,在物理空间上不一定连续。
- 形参和实参( 指针作为参数)
这篇文章写得很详细: 指针参数@DayThinking
简单来说,除引用外,其它传入的实参都需要copy一份进行函数调用。
- C++内存布局
链接到两篇好文章:堆、栈、静态区区别 自由存储区和堆区别
堆 | 由程序员进行请求分配和自主释放(使用内存非配函数) |
---|---|
栈 | 由系统分配回收,用于储存局部变量(空间较小) |
自由存储区 | 使用 new/delete 进行分配的空间 |
常量存储区 | 存储常量数据 |
全局/静态存储区 | 存储全局变量与静态变量 |
自由存储区是抽象的概念,new 运算符可由 malloc() 实现
【C/C++笔记】 C/C++常见问题笔记 1相关推荐
- 黄海广博士的机器学习个人笔记及深度学习笔记
想要下载黄海广博士的机器学习个人笔记及深度学习笔记的请复制下面链接 https://download.csdn.net/download/wgllovemother/10447758 备注:有想下载 ...
- noteexpress 笔记导出_把笔记还给用户,可以选择自己存储位置的笔记应用#Joplin...
各种「云笔记」现在已经为人所熟知.在充分运用「云技术」的今天,另一股新潮流也在逐渐涌动. 这股潮流认为:「应该把笔记从云端还给用户」.具体来说:用户不要将笔记信息保存在「云笔记」大厂的服务器上,新潮流 ...
- 印象笔记Evernote、有道云笔记、为知笔记、麦库笔记数据迁移对比
国内四大笔记产品印象笔记Evernote.有道云笔记.为知笔记.麦库笔记的产品功能优劣此处不做展示说明,以免被认作是托儿.水军,也避免商业纠纷,只作为本人隐私笔记文章. 此处只对四款软件的数据迁移(导 ...
- 小红书种草笔记怎么写?种草笔记标题怎么写比较好
小红书作为国内最大的内容分享平台必然是充满着巨大的能量的.就看你现在怎么挖掘.很多人都疑惑于小红书种草笔记怎么写?今天就一起来看看吧. 小红书只是个渠道,你写小红书种草笔记的目的是什么?是为了引流,是 ...
- 从零开发一款笔记APP——神马笔记WhatsNote
从零开发一款笔记APP--神马笔记WhatsNote 一.主要功能 二.开发过程 三.优质的笔记应用 四.附录 一.主要功能 笔记的主要功能分为三个部分: 管理 目录--多层目录结构 标签--单层结构 ...
- 小红书笔记api_小红书笔记怎么写?
小红书是现在最火的分享型电商APP,拥有众多的用户,而且超90%的用户是年轻女性,独特的优势让小红书成为各大品牌商家做营销推广的重要阵地,特别是对于那些美妆.服饰.母婴等产品.在小红书上做推广,其中一 ...
- 如何做好笔记以及记好笔记的好处
记笔记的好处 1.加深记忆,防止遗忘 2.通过笔记,可以理解掌握疑难点,防止以后犯同样的错误 3.记笔记可以培养总结整理的好习惯 4.好记性不如烂笔头 5.使笔记能够清楚的表达,可以将事情描述清楚 6 ...
- 大学计算机基础知识手写笔记,清华学霸手写笔记火了,如同“电脑打印版”,学渣快来“瞻仰”...
学霸作为一群"神秘人",他们大多身影忙碌,行色匆匆,而且不为人知.是我们这些普通学生难以"望其项背"的存在.不过,也有很多人不服气:不就是学习好的学生吗?难道还 ...
- 石墨笔记,为知笔记和Effie哪个更适合学生?
学生向来是与写作有着密不可分联系的那一部分群体,以大学生为例,不仅学习的过程中需要写作,课外做一些兼职也会应用到写作.而且学生的写作需求比较多样化:记录笔记.整理知识点.做知识管理.创建思维导图帮助记 ...
最新文章
- Windows软件路由器典型应用:静态路由、RIP和包过滤
- 领度CEO廖睿:企业社交最大的阻力来自老板
- Java并发编程(五)JVM指令重排
- Stanford UFLDL教程 稀疏编码自编码表达
- mysql hicharts_PHP怎么调用Mysql的数据给Highcharts
- mysql教程丿it教程网_MySQL整体
- python信息传送管道_python – 获取返回管道输入的命令
- 使用“swap技巧”除去多余的容量
- 亲个嘴竟然有这么大的学问
- linux禁ping禁什么端口,Linux配置防火墙,开启80,22等常用端口禁止ping等
- WindowXP下PHP5开发环境配置 (转载)
- AllyCAD v3.5 R12 1CD(专业CAD软件)
- 曼联球星普巴来罗!POGMOJI APP即将上市
- 让Office 2003与Office 2010完美共存
- CVE-2013-3893 IE浏览器UAF漏洞分析
- 使用钉钉机器人实现运维告警信息自动发送(Python、Nagios、Shell)
- 小程序token有效期_微信小程序token过期时间后重新获取-微信小程序过期恢复步骤-微信小程序怎么找...
- 乔戈里带你0元白嫖阿里云服务器指南
- 关于数据分析的一些实例报告
- CEA-861-D infoframe