c++学习d1基础知识

本文概括了c++的一小部分基础知识

目录

第一个c++程序:

c++程序的注释

c++数据

c++变量和常量

声明变量

变量的作用域

c++中常用的数据类型

使用常量

c++函数的文件编写:

VS中调试程序

递归函数:

sizeof 关键字

c++数据类型

整形

由数据类型推范围:

整数的书写

c++11的long long 类型

浮点型(实数型)

字符型

c++11原始字面量

字符串型:

布尔型

数据类型的转换

数据类型取别名


第一个c++程序:

//包含头文件
#include<iostream>
using namespace std;
int main()
{
    cout << "Hello world!" << endl;
    retrun 0;
}

c++程序的注释

  • 单行注释 :用两根反斜杠打头,一般放在代码的上方,或者放在一行语句的末尾

  • 多行注释 : 从 "/" 开始到 "*/" 结束

c++数据

在c++中数据有数字,字符,字符串三种类型

  • 数字 : 直接书写,如 : 12 3 100

  • 字符 : 用半角的单引号包含的一个字符,如 : 'A' , 'C' , 'a';

  • 字符串 : 用半角的双引号包含的多个字符,如 : "acbDjhjdkf132"

注意:

  • 在32位和64位操作系统中,同一种数据类型占用的内存空间可能不一样。

  • 字符串(string)不是C++的基本数据类型,用sizeof求它占用内存的大小没有意义。

c++变量和常量

声明变量

变量在使用之前要声明,在声明的时候也可以对其赋初值,如:

int a = 10;

变量的作用域

作用域是指程序中变量存在(或生效)的区域

C++中定义变量的场景主要有五种:

1)在全部函数外面定义的是全局变量。

2)在头文件中定义的是全局变量。

3)在函数和语句块内部定义的是局部变量。

4)函数的参数是该函数的局部变量。

5)函数内部用static修饰的是静态局部变量。

c++中常用的数据类型

有以下5种:

  • 整形(int)

  • 浮点型(float)

  • 字符(char)

  • 字符串(string)

  • 布尔(bool)

使用常量

常量 :程序中固定不变的数据

  • 宏常量

    一般在main函数的上面声明,用大写来命名

    #define PI 3.1415926
  • const 修饰的常量

    在程序的任何地方都可以声明。

    const int N = 1e5;

c++函数的分文件编写:

1.头文件(*.h) : 需要包含的头文件,指定命名空间,声明去哪句变量,函数的声明,数据结构和类的声明等.

2.源文件(*.cpp) : 函数的定义,类的定义

3.主程序 : main函数,程序的核心流程,需要使用#include "头文件名"把头文件包含进去。

例:

girls.cpp

#include "girls.h"
void print(int no, string str) {
    cout << "亲爱的" << no << "号: " << str << endl;
}
tools.cpp

#include "tools.h"
​
int max(int a, int b) // 比较两个数的大小,返回较大值
{
    return a > b ? a : b;
}
​
int min(int a, int b) // 比较两个数的大小,返回较小值
{
    return a < b ? a : b;
}
girls.h

#pragma once
#include<iostream>
using namespace std;
// 函数的分文件编写
​
void print(int no, string str);//表白神器
tools.h

#pragma once
#include<iostream>
using namespace std;
// 函数的分文件编写
int max(int a, int b);// 比较两个值的大小,返回较大的哪一个
int min(int a, int b);//比较两个值的大小,返回较小的哪一个
demo01.cpp (主程序):

#include "girls.h"
#include "tools.h"
​
int main()
{
    cout << "max(5,8)=" << max(5, 8) << endl;
    cout << "min(5,8)=" << min(5, 8) << endl;
    print(3, "我是一只小小鸟!");
}
VS中调试程序
F9设置/取消断点。

F5/F10开始调试。

Shift+F5放弃调试。

F10逐过程执行。

F11逐语句执行(可进入函数内部)。局部变量窗口显示了变量的值,也可以修改。

递归函数:
递归函数就是在函数实现的过程中,自己调用了自己

例:

int f(int x)                            // 递归函数。
{
    if (x == 0) return 0;        // 递归终止的条件。
    return x + f(x - 1);          // 在函数体中调用了自己。
}
​
sizeof 关键字
#include<iostream>
using namespace std;
int main()
{
    //用于数据类型 :sizeof(数据类型)
    //用于变量 : sizeof(变量名) 或 sizeof 变量名
    cout <<"sizeof(int)=" << sizeof(int) << endl;
    int i;
    cout << "sizeof(int)=" << sizeof i << endl;
}

c++数据类型

整形

c++用int(integer)来声明整形变量

在int关键字之前可以加以下4种修饰符:

  • signed : 有符号的,可以表示正数和负数

  • unsigned : 无符号的,只能表示正数

  • short : 短的,取值范围小,占用内存少

  • long : 长的,取值范围大,占用内存多

类型简写类型全称长度取值范围
shortsigned short int2字节-32768~32767
unsigned shortunsigned short int2字节0~65535
intsigned int4字节-2147483648~2147483647
unsignedunsigned int4字节0~4294967295
longsigned long int8字节-9223372036854775808~ 9223372036854775807
unsigned longunsigned long int8字节0~18446744073709551615

由数据类型推范围:

a)一个字节有8个位,表示的数据的取值范围是28-1,即255。

b)如果占用的内存是两个字节,无符号型取值范围是28ⅹ28-1。

c)如果占用的内存是四个字节,无符号型取值范围是28ⅹ28ⅹ28ⅹ28-1。

d)如果占用的内存是八个字节,无符号型取值范围是28ⅹ28ⅹ28ⅹ28ⅹ28ⅹ28ⅹ28ⅹ28-1。

e)如果是有符号,取值范围减半,因为符号占一个位。

f)计算机用最高位1位来表达符号(0-正数,1-负数),unsigned修饰过的正整数不需要符号位,在表达正整数的时候比signed修饰的正整数取值大一倍。

整数的书写

  • 十进制 : int a = 100;

  • 二进制 : 带前缀 0b 或 0B 开头

  • 八进制 : 带前缀 0 开头

  • 十六进制 : 带前缀 0x 或 0X 开头

#include<iostream>
using namespace std;
int main()
{
     // 十进制 
    int a = 10;
    cout << a << endl;
    // 二进制
    int x = 0b101;//表示十进制 5
    cout << x << endl;
    //八进制
    int y = 015 ; //表示十进制 13
    cout << y << endl;
    // 十六进制
    int z = 0x2A; //表示十进制42
    cout << z << endl;
    return 0;
}
​

c++11的long long 类型

在VS中,long是4字节,32位。 -2147483648~2147483647

在Linux中,long是8字节,64位。 -9223372036854775808~9223372036854775807

C++11标准增了long long类型的整数,至少64位,且至少与long一样长

在VS中,long long是8字节,64位。 -9223372036854775808~9223372036854775807

在Linux中,long和long long类型都是8字节,64位。

浮点型(实数型)

  • float : 单精度

  • double : 双精度

  • long double : 扩展精度

数据类型占用空间有效数字范围
float4字节7位有效数字 8位
double8字节15~16位有效数字 17位
long double不少于double不低于double 17位

字符型

字符型(char)占用的内存空间为一个字节,书写为单引号包含。

字符的本质是整数,0~127

// 两个等价
char a = 'X'
char a = 88

c++11原始字面量

原始字面量(值)可以直接表示字符串的实际含义,不需要转义和连接

语法 :

R"(字符串的内容)"
// 或
R"xxx(字符串的内容)xxx"

例:

#include <iostream>         // 包含头文件。
using namespace std;        // 指定缺省的命名空间。
​
int main()
{
    // 使用转义的方法
    string path = "C:\\Program Files\\Microsoft OneDrive\\tail\\nation";
    cout << "path is " << path << endl;
​
    // 使用C++11原始字面量
    string path1 = R"abcd(C:\Program Files\Microsoft OneDrive\tail\nation)abcd";
    cout << "path1 is " << path1 << endl;
​
    string str = R"(
        <no>0001</no>
        <name>西施</name>
        <sc>火树银花</sc>
        <yz>沉鱼</yz>
        <age>23</age>
        <weight>48.5</weight>
        <height>170</height>)";
    cout << str << endl;
}
​

字符串型:

  • c风格 : char a[];

  • c++风格 : string a;

布尔型

  • 占用一个字节

  • 只有true 和 false两种情况

  • c中没有,c++中才有

数据类型的转换

分为两种:

  • 自动类型转换 : 某些类型的转换编辑器可以隐式地进行;

    整形由低到高:

    char -> short -> int -> long -> long long

    浮点型由低到高

    float -> double -> long double

  • 强制类型转换 : 有些类型的转换需要程序员显式指定

数据类型取别名

#include <iostream>         // 包含头文件。
using namespace std;        // 指定缺省的命名空间。
​
int main()
{
    //1.为名称复杂的类型创建别名,方便书写和记忆
      //  typedef long long LL;
    //2.创建与平台无关的数据类型,提高程序的兼容性
    
    //在vs中,short是两个字节,int是4个字节,long也是4个字节long long 是8个字节
    typedef short          int16_t;
    typedef int              int32_t;
    typedef long long   int64_t;
    
    // 在linux中,short是两个字节,int是4个字节,long是8个字节,long long也 是8个字节
    typedef short   int16_t;
    typedef int              int32_t;
    typedef long   int64_t;
​
    // 在程序源代码中,只使用别名int16_t、int32_t、int64_t,不使用原名。
}
​

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值