一些琐碎的C/C++知识点
1. C++ 数组作为函数参数
在C/C++中,当数组作为函数的参数进行传递时,数组就自动退化为同类型的指针。(在32位系统中,对任意指针求sizeof结果为4)
2. C++ 中const的用法总结
3. 复制构造函数不允许用传值参数,要使用引用类型
因为在参数为传值参数时,会调用复制构造函数,从而造成死循环,导致栈溢出。
4.在C++中,成员变量的初始化顺序只与他们在类中声明的顺序有关,而与在初始化列表中的顺序无关。没被初始化的值是随机的。
5.计算字符串长度的函数
1、 strlen():
- 头文件:#include <string.h>
- 原型:unsigned int strlen (char *s) //注意,这里的参数是字符指针
- 判断的唯一标准是'\0',该函数会往后遍历,直到碰到'\0'
2、str.length()和str.size():
- 头文件:#include<string>
- using namespace std
- 该函数是用于求string类对象长度的成员函数
- 两者无区别,length是因为沿用C语言的习惯而保留下来的,string类最初只有length,引入STL之后,为了兼容又加入了size,它是作为STL容器的属性存在的,便于符合STL的接口规则,以便用于STL的算法。
6.数组指针和指针数组的区别




注意点:
- 数组“本身”出现在 非sizeof,非 & 后面时,会自动转换为指向数组首元素的指针
- 二维数组的数组名是一个数组指针。例如
int a[4][10]; int (*p)[10]; p=a //a的类型是int (*)[10];
持续更新中。。。
一些琐碎的C/C++知识点的更多相关文章
- 异常笔记--java编程思想
开一个新的系列,主要记一些琐碎的重要的知识点,把书读薄才是目的...特点: 代码少,概念多... 1. 基本概念 异常是在当前环境下无法获得必要的信息来解决这个问题,所以就需要从当前环境跳出,就是抛出 ...
- Java琐碎知识点
jps命令是JDK1.5提供的一条显示当前用户的所有java进程pid的指令,类似Linux上的ps命令简化版,Windows和linux/unix平台都可以用比较常用的参数:-q:只显示pid,不显 ...
- linux琐碎知识点
1.awk的使用方式,pattern支持正则表达式 awk 'pattern{action}' {filenames} 其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找 ...
- linux学习之一些琐碎知识点
一.python 问:django中project和app之间到底有什么不同? 答:他们的区别就是一个是配置,另一个是代码. 一个project包含很多个django app以及对它们的配置.技术上, ...
- Java知识点:琐碎知识点(3)
零碎 switch(x),x只可以是enum或byte.short.char.int. 枚举在switch-case语句作为标签时必须是枚举常量的非限定名称,否则Compile Error. Enum ...
- Java知识点:琐碎知识点(2)
49个关键字一览 abstract default if private this boolean do implements protected throw break double import ...
- Java知识点:琐碎知识点(1)
Java基本介绍 SUN:Stanford University NetworkJava之父:James GoslingJava的跨平台性因为有Java虚拟机,运行class文件.Java吉祥物:Du ...
- ROS机器人编程实践----琐碎知识点
amcl原理: amcl将激光传感器数据与从地图预估的传感器数据相比较,给出可能的位姿.如果传感器数据和某个候选位姿处的预测数据相同,amcl就会给这个位姿一个较高的概率,反之,就会降低这个概率.概率 ...
- CSS琐碎知识点(持续补充)
一.字体单位,pt?px?em?rem? pt:磅,一种固定长度的绝对的度量单位,是能够使用测量设备测得的长度,印刷业上经常使用,一般用于页面打印排版. px:屏幕设备上能显示出的最小的一个物理点,这 ...
随机推荐
- java用Kruskal实现最小生成树
今天更新这篇文章超级激动,因为我会最小生成树的算法了(其实昨天就开始研究了,只是昨天参加牛客网的算法比赛,结果又被虐了,好难过~) 最小生成树的算法,其实学了数据结构就会有一定的基础,Kruskal算 ...
- Entity Framework Core 2.1 Preview1 新增功能简介
两个星期前,微软发布了EF Core 2.1 Preview 1,同时还发布了.NET Core 2.1 Preview 1和ASP.NET Core 2.1 Preview 1:EF Core 2. ...
- OpenAI dota2大战人类顶尖选手视频
AI大战Dendi:http://www.bilibili.com/video/av13267474/?zw#quality=3 AI大战Sumail:http://www.bilibili.com/ ...
- 【BZOJ3529】【SDOI2014】数表
Time Limit: 1000 ms Memory Limit: 512 MB Description 有一张n×m的数表,其第i行第j列 (1≤i≤n,1≤j≤m)的数值为能同时整除i和j的所有自 ...
- git本地项目关联远程仓库
应用场景: 当你在开发一个项目的时候,不想只在本地存储,想用git来管理代码时候的. 1.在你的项目根目录打开git命令窗口,通过 git init 命令把这个目录变成Git可以管理的仓库: git ...
- windows下的react-native 开发环境搭建
本教程用安卓手机作为演示. 首先安装jdk.本教程基于jdk1.8,安装时有一点要特别注意:jdk和jre必须装到不同目录下,否则初始化react-native项目时大概率报tools.jar not ...
- 基于新浪SAE平台的微信开发
自己的微信公众平台开发差不多了,欢迎关注试用哦,我会不定期在那里分享技术文章! 主要功能: 输入t+中文或者英文返回对应的英中翻译 输入[m]随机来首音乐听,建议在wifi下听 输入[ly+你的留 ...
- thoughtworks面试题分析与解答
题目描述 A squad of robotic rovers are to be landed by NASA on a plateau on Mars. This plateau, which is ...
- 设计模式——观察者模式(C++实现)
#include <iostream> #include <vector> #include <algorithm> #include <iterator&g ...
- python 中的 args,*args,**kwargs的区别
一.*args的使用方法 *args 用来将参数打包成tuple给函数体调用 例子一:def function(*args): print(args, type(args))function ...