c++其实语法上和java差不多,但是c++读起来却比java吃力。我认为操作符和定义好的方法名称是阻碍代码阅读的最大苦难。对较多定义好的函数不够熟悉。所以在此记录下常用的操作符和函数。如果有遇到不认识的函数可以通过man <method name>
查看。
操作符
1.取地址符&和取值符*
2.->和.
- ->通过对象的指针对象,访问结构体中的数据。
- .直接通过对象,访问结构体中的数据。
3.sizeof
sizeof是运算符,不是函数。计算变量(或类型)所占字节空间的大小。
ps:可以通过指针地址的size来看64位还是32位。下图中指针sizeof为8个字节,也就是64位。
4.include<>和””的区别
表示编译器在搜索头文件时的顺序不同,<>表示从系统目录下开始搜索,然后再搜索PATH环境变量所列出的目录,不搜索当前目录,””是表示从当前目录开始搜索,然后是系统目录和PATH环境变量所列出的目录。
所以,系统头文件一般用<>,用户自己定义的则可以使用””,加快搜索速度。
5.#if #elif #else #endif #if defined #if !defined #ifdef #ifndef
条件编译语句,不满足条件的结构体不参与编译。
#if defined
等价于#ifdef
#if !defined
等价于#ifndef
后面接的symbol是指有没有定义过,即使定义的值为0,#ifdef
也是true。
避免重复引入的例子:
1 | c复制代码//一般使用前面两个下划线,中间一个下划线,后面两个下划线 |
1 | c复制代码#pragma once |
6.struct
结构体
1 | c复制代码struct student { |
7.using namespace ::
1 | c复制代码#include <iostream> |
static_cast
1 | c复制代码int i = 10; |
int32_t uint32_t 及size_t
size_t主要用于计数,他就是一个unsinged int的重定义. 如sizeof函数返回值类型即为size_t。在不同位的机器中所占的位数也不同,size_t是无符号数
在不同机器中定义不同:
在32位机器中定义为:typedef unsigned int size_t; (4个字节)
在64位机器中定义为:typedef unsigned long size_t;(8个字节)
使用 size_t 来代替 int 或 unsigned 可以保证在同一个平台中,始终得到得到一个数据类型或变量的字节大小,保证了程序对该数据类型或变量的统计方式始终一致,不会因为平台的改变而出现错误。
stdint.h源码
size_t 的声明是实现相关的。它出现在一个或多个标准头文件中,比如stdio.h 和stblib.h,典型的定义如下:
1 | c复制代码#ifndef __SIZE_T |
nullptr
空指针
const、constexpr
关键字 constexpr
是在 C++ 中引入的11,并在C++ 14中进行了改进。它意味着不断的表达。像 一样 const
,它可以应用于变量:当任何代码尝试修改该值时,会引发编译器错误。与 不同 const
, constexpr
也可以应用于函数和类构造函数。 constexpr
指示该值或返回值是常量,并且在可能的情况下,在编译时计算。
www.cnblogs.com/ljwgis/p/13…
static、auto、extern、register
learn.microsoft.com/zh-cn/previ…
函数
- printf 控制台输出
- memset
数据类型
类型 | 位 | 范围 |
---|---|---|
char | 1 个字节 | -128 到 127 或者 0 到 255 |
unsigned char | 1 个字节 | 0 到 255 |
signed char | 1 个字节 | -128 到 127 |
int | 4 个字节 | -2147483648 到 2147483647 |
unsigned int | 4 个字节 | 0 到 4294967295 |
signed int | 4 个字节 | -2147483648 到 2147483647 |
short int | 2 个字节 | -32768 到 32767 |
unsigned short int | 2 个字节 | 0 到 65,535 |
signed short int | 2 个字节 | -32768 到 32767 |
long int | 8 个字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
signed long int | 8 个字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned long int | 8 个字节 | 0 到 18,446,744,073,709,551,615 |
float | 4 个字节 | 精度型占4个字节(32位)内存空间,+/- 3.4e +/- 38 (~7 个数字) |
double | 8 个字节 | 双精度型占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字) |
long long | 8 个字节 | 双精度型占8 个字节(64位)内存空间,表示 -9,223,372,036,854,775,807 到 9,223,372,036,854,775,807 的范围 |
long double | 16 个字节 | 长双精度型 16 个字节(128位)内存空间,可提供18-19位有效数字。 |
wchar_t | 2 或 4 个字节 | 1 个宽字符 |
注意,各种类型的存储大小与系统位数有关,但目前通用的以64位系统为主。
关键字
C++ 的关键字(保留字)完整介绍 | 菜鸟教程 (runoob.com)
本文转载自: 掘金