C/C++语言学习NO1.零散易忘知识点

1.define换行编写,加"\"

#define   MACRO(arg1,   arg2)   do   {   \ 
   \ 
stmt1;   \ 
stmt2;   \ 
   \ 
}   while(0)

2.abs(),fabs(),fabsf()区别

int abs(int i); // 处理int类型的取绝对值

double fabs(double i); //处理double类型的取绝对值

float fabsf(float i); /处理float类型的取绝对值

3.memcpy()的参数意义

函数原型
void *memcpy(void *destin, void *source, unsigned n);
参数
destin-- 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
source-- 指向要复制的数据源,类型强制转换为 void* 指针。
n-- 要被复制的字节数。
返回值
该函数返回一个指向目标存储区destin的指针。
功能
从源source所指的内存地址的起始位置开始拷贝n个字节到目标destin所指的内存地址的起始位置中。 [2] 
所需头文件
C语言:#include<string.h>
C++:#include<cstring>

4 . 基础内存

1. int,long int,short int的宽度随编译器而异

1.1  16位编译器 

    char :1个字节

    char*(即指针变量): 2个字节

    short int : 2个字节

    int: 2个字节

    unsigned int : 2个字节

    float: 4个字节

    double: 8个字节

    long: 4个字节

    long long: 8个字节

    unsigned long: 4个字节


1.2 32位编译器

    char :1个字节

    char*(即指针变量): 4个字节

    short int : 2个字节

    int: 4个字节

    unsigned int : 4个字节

    float: 4个字节

    double: 8个字节 

    long: 4个字节

    long long: 8个字节

    unsigned long: 4个字节


1.3 64位编译器

     char :1个字节

    char*(即指针变量): 8个字节

    short int : 2个字节

    int: 4个字节

    unsigned int : 4个字节

    float: 4个字节

    double: 8个字节

    long: 8个字节 (定义是long至少不小于int)

    long long: 8个字节 (long long至少不小于long)

    unsigned long: 8个字节



2. C 标准要求 float 类型精度7位  double双精度完全保证的有效数字最高是15位
 

5 . 结构体内存对齐使用

#pragma pack(4)
...
#pragma pack()

6 . 前向声明

class B 内使用 class A成员,只能通过指针或者引用方式调用;

class A;
class B
{
    A* a; // 前向声明的类不能实例化对象
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值