c++总结笔记(一)

发布于:2024-04-16 ⋅ 阅读:(168) ⋅ 点赞:(0)

计算机可以将程序转化为二进制指令(即机器码),并由CPU执行,CPU会按照指令的顺序依次执行每个指令。

C语言特点:

  • 简洁
  • 高效
  • 可移植
  • 模块化
  • 标准化

C语言的标准 

  • C89(C90)标准
  • C99标准
  • C11标准

导入 

使用include导入包含库文件

数据类型

数据类型的作用:编译器预算数据分配的内存空间大小

命令规则

规则说明:只能由数字、字母、下划线_组成;不能使用数字开头 不能使用关键字 驼峰命名

ASCII码 

大小写字母差32

布尔类型

C语言没有布尔类型数据,以0代表逻辑假,非0代表逻辑真; 使用stdbool.h中的bool

基本数据类型长度

   自定义的常量  

   #define PI 3.14
   const double pi2 = 3.14;

  数值存储方式 

  计算机底层都是存储数据都是采用二进制,但二进制也有几种,比如:原码、反码、补码。接下    来我们来看看他们之间的关系的意义作用。

  原码

  • 10 -> 0000 1010
  • -10 -> 1000 1010
  • -1 -> 1000 0001
  • 1 -> 0000 0001

   反码 (正数和原码相同)

   负数的反码是按位取反(但符号位不变)

  • 1 -> 0000 0001 -> 0000 0001
  • -1 -> 1000 0001 -> 1111 1110

  补码

正数的补码就是原码本身;

负数的补码就是在反码的基础上+1;

  • 1 -> 0000 0001 -> 0000 0001 -> 0000 0001
  • -1 -> 1000 0001 -> 1111 1110 -> 1111 1111

输出和输入

打印格式

对应数据类型

含义

%c

char

字符型,输入的数字按照ASCII码相应转换为对应的字符

%d

int

接受整数值并将它表示为有符号的十进制整数

%f

float

单精度浮点数

%s

char *

字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符)

%p

void *

以16进制形式输出指针

运算符

运算符

术语

示例

结果

&

按位与运算

011 & 101

2个都为1才为1,结果为001

|

按位或运算

011 | 101

有1个为1就为1,结果为111

^

按位异或运算

011 ^ 101

不同的为1,结果为110

~

取反运算

~011

100

<<

左移运算

1010 << 1

10100

>>

右移运算

1010 >> 1

0101

类型转换

  • 转换的方法有两种:
  • 自动转换(隐式转换):遵循一定的规则,由编译系统自动完成强制类型转换:把表达式的运算结果强制转换成所需的数据类型
  • 类型转换的原则:
  • 占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。(从小到大转

 程序执行的三大流程

顺序 分支 循环

可移植的类型

为了更好的兼容不同平台,我们在使用基本上数据类型的时候会采用可移植的类型,这些类型可以确保在不同的平台下稳定的运行。

跳转关键字

  • 循环和switch专属的跳转:break(不执行循环后续重复的代码退出)
  • 循环专属的跳转:continue(只退出当前)
  • 无条件跳转:goto

多文件编程

声明类: 声明方法用于 使用类方法调用

防止头文件重复包含:

#ifndef __SOMEFILE_H__
#define __SOMEFILE_H__

// 声明语句

#endif

#pragma once

// 声明语句

 实现类: 实现方法

 使用类  extern 导入 声明类参数 和方法

 extern int global_val;
 extern void printf_val();

指针变量的定义和使用

  • & 叫取地址,返回操作数的内存地址
  • * 叫解引用,指操作指针所指向的变量的值
  • 在定义变量时,* 号表示所声明的变量为指针类型

指针大小

  • 在32位平台,所有的指针(地址)都是32位(4字节)
  • 在64位平台,所有的指针(地址)都是64位(8字节)

指针步长

  • 指针步长指的是通过指针进行递增或递减操作时,指针所指向的内存地址相对于当前地址的偏移量。

野指针和空指针

野指针 没用指针 只有值

空指针  有指针 没数据

函数调用

 // 3种调用方法都可以
 func(1); // 最简便,最常用
 (&func)(2);
 (*func)(3);

回调函数

  • 函数指针变量做函数参数,这个函数指针变量指向的函数就是回调函数
  • 回调函数可以增加函数的通用性

// 定义函数,函数指针做形参
int calc(int a, int b, int (*p)(int, int)){
    // 通过函数指针变量调用函数,获取返回值
    int res = p(a, b);  
    return res;
}


网站公告

今日签到

点亮在社区的每一天
去签到