一、变量数据类型

  1. int大致范围:-2*109~2*109
  2. long long大致范围:-9*1018~9*1018,对于长整型来说,如果赋值大于2^31-1的初值,就需要在初值后面加上LL,否则会编译错误。
  3. float单精度大致范围:小数点后6~7位
  4. double双精度大致范围:小数点后15~16位
  5. char字符型大致范围:-128~127
  6. 09、AZ、az的ASCII码值分别是4857、6590、97122
  7. 不可以使用定义好的数组名,直接进行赋值会报错,如果要赋值带上下标。同时,字符串和字符的单双引号,一定要区别开来。
  8. 布尔型变量,在C++中可以直接使用,如果在C语言中使用必须添加stdbool.h头文件。
  9. define pi 3.14,注意后面没有分号,也可以使用const double pi = 3.14;

二、输入输出格式问题

scanf:

  1. int : %d 是以空白符即空格、换行为结束判断标志的
  2. long long : %lld
  3. float : %f
  4. double: %lf
  5. char : %c ,%c格式是可以读入空格和换行的
  6. 字符串(char数组):%s 字符数组使用%s读入的时候以空格和换行行为作为结束标志的
  7. 特别注意在scanf中除了char数组整个输入的情况不加&之外,其他变量类型都需要加&

printf:

  1. 除了浮点数中的都可以使用成%f,其他都一样。
  2. 输出格式%md可以使不足m位的int型变量以m位进行右对齐输出,其中高位用空格补齐,如果变量本身超过m位,则保持原样。
  3. %0md,只是在上面多了个0,唯一不同就是,不足m位的时候,使用0补齐而不是空格。
  4. %.mf可以让浮点数保持m位小数输出(保留的精度是四舍六入五成双)
  5. typedef可以给一个复杂的数据类型起一个别名,例如:typedef long long LL;

常用math函数

  1. fabs(double x): 用于对double型变量取绝对值
  2. floor(double x)和ceil(double x):这两个函数用来向下取整和向上取整
  3. pow(double r, double p)该函数用于返回r^p
  4. sqrt(double):用于求算术平方根
  5. log(double x):用于返回自然对数为底的对数,C语言中没有对任意底数求对数的函数,因此需要使用换底公式。
  6. sin()cos()tan()asin()acos()atan()
  7. round(double x): 该函数用于对double类型x进行四舍五入,返回类型也是double,需要进行取整。例如double x = round(3.4);printf("%d", (int)x);

三、数组

  1. 一维数组初始化问题,如果是定义全局变量没有初始化,那么会默认初始化全为0,如果定义的是局部变量,没有初始化会随机初始,如果没有完全初始化,剩余部分初始化为0.
  2. 二维数组初始化问题,使用大括号进行初始化,如果没有初始化也会默认为0,中间如果跳过某一行初始化,也必须使用空大括号,不然编译不予通过。
  3. 如果数组大小较大(10^6级别),需要将其定义在主函数外面,否则会异常退出。
  4. memset(数组名, 值, sizeof(数组名)),需要带上头文件cstring和algorithm,同时建议赋值只赋0或-1,要是赋值其他会跟赋值对应不上,亲测。
  5. 字符数组初始化,方法同一般数组相同,可以在定义的时候直接进行字符串初始化,其他位置不允许直接赋值字符串。
  6. 字符数组的存放格式,是以\0结尾,其他数组不是,所以在定义字符数组时需要多开辟一个空间来存放它。

string.h头文件

  1. strlen(字符数组), 可以得到第一个\0前的字符个数。
  2. strcmp(字符数组1, 字符数组2), 返回两个字符串大小比较结果,按字典序,如果等于返回0,数组1大于字符数组2返回一个正整数,否则返回一个负整数。
  3. strcpy(字符数组1, 字符数组2), 把字符数组2复制给字符数组1,这里的复制包括了结束符\0,相当于替代了,注意不是连接。
  4. strcat(字符数组1, 字符数组2), 把字符数组2接到字符数组1后面。
  5. sscanf(str, "%d", &n) and sprintf(str, "%d", n),理解一下,scanf是从str到n,printf是从n到str。

四、函数传参、引用、指针、结构体

  1. 数组作为函数参数进行传参,参数中的一维数组不需要填写长度,如果是二维数组则需要填写长度,实际调用时也只需填写数组名,最重要的就是数组作为参数时,在函数中对数组元素的修改就等同于是对原数组元素的修改(这与普通的局部变量不一样)。不能作为返回类型出现,如果返回则使用这方法将想要返回的数组当参数传入,例子有两种书写格式,两者等价,结构体数组也一样:
int a[10];
格式1:
void test(int *a){ }
格式2:
void test(int a[]){ }

指针:

int a = 10;

int *p = &a;

printf("%d %d", *p, a);

输出结果一样

  1. 搞清楚&、*有啥区别
  2. 指针是一个unsigned类型的整数。
  3. 指针变量就是用来存储指针的可以理解为地址。
  4. 给指针变量赋值的方式一般是使用&取地址符把变量的地址取出然后赋值给指针。
  5. *可以理解成房间的一把钥匙,用于取出地址中存放的东西。
  6. 指针变量作为函数参数,这视为把变量地址传入函数,如果在函数中对这个地址中的元素进行修改,原生数据确实就会被修改了。一个经典例子交换数
  7. C++一个强有力的语法,引用,不产生副本,对引用变量的操作就是对原变量的操作。void change(int &a){}

日常笔记5C/C++快速入门一些基础细节的更多相关文章

  1. 【笔记】PyTorch快速入门:基础部分合集

    PyTorch快速入门 Tensors Tensors贯穿PyTorch始终 和多维数组很相似,一个特点是可以硬件加速 Tensors的初始化 有很多方式 直接给值 data = [[1,2],[3, ...

  2. Git 快速入门--Git 基础

    Git 快速入门 Git 基础 那么,简单地说,Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余. 在开始学习 G ...

  3. 【Python】【学习笔记】1.快速入门

    1.软件安装 从官网下载相应版本的安装包,一般不大. https://www.python.org/ 安装一路默认即可 2. 参考教程:快速入门:十分钟学会Python 本文的内容介于教程(Totur ...

  4. Html与CSS快速入门02-HTML基础应用

    这部分是html细节知识的学习. 快速入门系列--HTML-01简介 快速入门系列--HTML-02基础元素 快速入门系列--HTML-03高级元素和布局 快速入门系列--HTML-04进阶概念 示例 ...

  5. Html与CSS快速入门03-CSS基础应用

    这部分是html细节知识的学习. 快速入门系列--HTML-01简介 快速入门系列--HTML-02基础元素 快速入门系列--HTML-03高级元素和布局 快速入门系列--HTML-04进阶概念 边框 ...

  6. [学习笔记] 多项式与快速傅里叶变换(FFT)基础

    引入 可能有不少OIer都知道FFT这个神奇的算法, 通过一系列玄学的变化就可以在 $O(nlog(n))$ 的总时间复杂度内计算出两个向量的卷积, 而代码量却非常小. 博主一年半前曾经因COGS的一 ...

  7. MyBatis学习笔记(一)——MyBatis快速入门

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4261895.html 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优 ...

  8. Pytest系列(1) - 快速入门和基础讲解

    如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 前言 目前有两种纯测试的测试框架, ...

  9. 笔记50 Mybatis快速入门(一)

    一.Mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis ...

随机推荐

  1. 强大的性能监测工具dstat

    强大的性能监测工具dstat 本节分为以下几个部分: dstat介绍: dstat命令是一个用来替换vmstat.iostat.netstat.nfsstat和ifstat这些命令的工具,是一个全能系 ...

  2. 【mysql报错】MySQL5.7.27报错“[Warning] Using a password on the command line interface can be insecure.”

    MySQL5.7.27报错“[Warning] Using a password on the command line interface can be insecure.”在命令行使用密码不安全警 ...

  3. MySQL锁表查询SQL

    // 查看进程 SHOW PROCESSLIST; // 查看是否锁表 SHOW OPEN TABLES WHERE In_use > 0; // 查看正在锁的事务 SELECT * FROM ...

  4. WPF-带有GridView的ListView样式

    ListView是展示数据的常用控件,这里简单对带有GridView的ListView样式进行设置. <Style TargetType="{x:Type ListViewItem}& ...

  5. 最近在折腾在线编辑,研究了下Wopi,下面粘贴出自己Office Online Server2016搭建与部署

    至少需要两台服务器,一台域控制器,一台部署Office Online Server https://docs.microsoft.com/zh-cn/officeonlineserver/office ...

  6. 百度站长平台HTTPS认证所遇到的坑

    坑1: 百度站长平台https认证失败,提示:请确保您网站的所有链接均支持https访问,且未使用不安全协议(如:SSL2.SSL3等协议). 解决办法: 1.  友情链接检查, 要检查所有的友情链接 ...

  7. asp.net 获取当前,相对,绝对路径

    一.C#获取当前路径的方法: 1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName -获取模块的完整路径. 2. ...

  8. C#.net模拟提交表单POST

    方法一.System.Net.WebClient WebClientObj        = new System.Net.WebClient();   System.Collections.Spec ...

  9. java的数据类型相关知识点

    总结就是八个字: 数据2型,四类八种 (个人理解,仅供参考) 解析图如下: 基本数据类型: 1.逻辑类:boolean 布尔类型,它比较特殊,布尔类型只允许存储true(真)或者false(假),不可 ...

  10. 「白帽黑客成长记」Windows提权基本原理(上)

    我们通常认为配置得当的Windows是安全的,事实真的是这样吗?今天让我们跟随本文作者一起深入了解Windows操作系统的黑暗角落,看看是否能得到SYSTEM权限. 作者将使用不同版本的Windows ...