C++基础

 

1.基础入门

 1.1C++七大数据类型

1.11数据结构图

只有这个宽字符有点新奇,而布尔型前面或多或少已经用过了。 下面就来讲一讲

1.12 什么是宽字符型和bool型?

宽字符型:C语言中char型变量可以储存一个字节的字符,汉字、韩文、日文等都占据两个字节,C++提供wchar_t类型来解决, wchar_t也就是双字节型,又叫宽字符型。”

bool型:bool就是布尔的意思,布尔值的返回值只有真(true)和假(false),多用于判断。

1.13基本修饰符

C语言中我们用signed,unsigned,short,long这几个修饰符来修饰一些数据类型,在C++中我们仍然可以用这四个来修饰数据类型。

1.14基本数据类型字节大小

这里我直接运行代码测试一下,如果代码看不懂,稍后我们就讲解。

 这是运行代码,各位如果还不过瘾,菜鸟教程讲解的挺详细。咱们在这里就不过多解释了。

#include<iostream>  
#include <limits>

using namespace std;

int main()
{
    cout << "type: \t\t" << "************size**************" << endl;
    cout << "bool: \t\t" << "所占字节数:" << sizeof(bool);
    cout << "\t最大值:" << (numeric_limits<bool>::max)();
    cout << "\t\t最小值:" << (numeric_limits<bool>::min)() << endl;
    cout << "char: \t\t" << "所占字节数:" << sizeof(char);
    cout << "\t最大值:" << (numeric_limits<char>::max)();
    cout << "\t\t最小值:" << (numeric_limits<char>::min)() << endl;
    cout << "signed char: \t" << "所占字节数:" << sizeof(signed char);
    cout << "\t最大值:" << (numeric_limits<signed char>::max)();
    cout << "\t\t最小值:" << (numeric_limits<signed char>::min)() << endl;
    cout << "unsigned char: \t" << "所占字节数:" << sizeof(unsigned char);
    cout << "\t最大值:" << (numeric_limits<unsigned char>::max)();
    cout << "\t\t最小值:" << (numeric_limits<unsigned char>::min)() << endl;
    cout << "wchar_t: \t" << "所占字节数:" << sizeof(wchar_t);
    cout << "\t最大值:" << (numeric_limits<wchar_t>::max)();
    cout << "\t\t最小值:" << (numeric_limits<wchar_t>::min)() << endl;
    cout << "short: \t\t" << "所占字节数:" << sizeof(short);
    cout << "\t最大值:" << (numeric_limits<short>::max)();
    cout << "\t\t最小值:" << (numeric_limits<short>::min)() << endl;
    cout << "int: \t\t" << "所占字节数:" << sizeof(int);
    cout << "\t最大值:" << (numeric_limits<int>::max)();
    cout << "\t最小值:" << (numeric_limits<int>::min)() << endl;
    cout << "unsigned: \t" << "所占字节数:" << sizeof(unsigned);
    cout << "\t最大值:" << (numeric_limits<unsigned>::max)();
    cout << "\t最小值:" << (numeric_limits<unsigned>::min)() << endl;
    cout << "long: \t\t" << "所占字节数:" << sizeof(long);
    cout << "\t最大值:" << (numeric_limits<long>::max)();
    cout << "\t最小值:" << (numeric_limits<long>::min)() << endl;
    cout << "unsigned long: \t" << "所占字节数:" << sizeof(unsigned long);
    cout << "\t最大值:" << (numeric_limits<unsigned long>::max)();
    cout << "\t最小值:" << (numeric_limits<unsigned long>::min)() << endl;
    cout << "double: \t" << "所占字节数:" << sizeof(double);
    cout << "\t最大值:" << (numeric_limits<double>::max)();
    cout << "\t最小值:" << (numeric_limits<double>::min)() << endl;
    cout << "long double: \t" << "所占字节数:" << sizeof(long double);
    cout << "\t最大值:" << (numeric_limits<long double>::max)();
    cout << "\t最小值:" << (numeric_limits<long double>::min)() << endl;
    cout << "float: \t\t" << "所占字节数:" << sizeof(float);
    cout << "\t最大值:" << (numeric_limits<float>::max)();
    cout << "\t最小值:" << (numeric_limits<float>::min)() << endl;
    cout << "size_t: \t" << "所占字节数:" << sizeof(size_t);
    cout << "\t最大值:" << (numeric_limits<size_t>::max)();
    cout << "\t最小值:" << (numeric_limits<size_t>::min)() << endl;
    cout << "string: \t" << "所占字节数:" << sizeof(string) << endl;
    // << "\t最大值:" << (numeric_limits<string>::max)() << "\t最小值:" << (numeric_limits<string>::min)() << endl;  
    cout << "type: \t\t" << "************size**************" << endl;
    return 0;
}

2.头文件及命名空间

2.1头文件引用

 C语言中是<stdio.h>,在这就换成这俩了,那这俩是啥意思?

 include<iostream>意思是引入iostream库,即输入输出流库。iostream库的基础是两种命名为istream和ostream的类型,分别表示输入流和输出流。#include<iostream>是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件。在旧的标准C++中,使用#include<iostream.h>,但在新标准中,用#include<iostream>。也就是包含C++中的输入cin, 输出cout的头文件。

 2.2命名空间

为啥中间有个using  namespace  std呢?它的作用是啥?

  • 1.C++通过作用域确定变量的访问权限,如全局作用域(对应全局变量)、函数作用域(对应函数局部对象)、类作用域(对应类成员)等等。命名空间对应着相应的作用域,可以将全局作用域进行分割,这样在不同命名空间定义的名字即使相同也不会发生冲突。程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其它全局实体分隔开来。
  • 2.它的翻译就是使用命名空间。这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。
  • 3.特殊理解:1, 2班都有一个叫李明的,而我要找1班的李明,不是2班的,那我直接限定在1班范围中再去找李明。
  • 如果不写使用命名空间的话则每一个标识符前加std::来限定。

3.基本语法 :

3.1输入和输出:

在C++中输入和输出我们一般不再使用scanf和printf而是使用cin>>,cout<<来表示输入输出。

 3.2空格, 换行符

3.21空格符打法

空格符打法很简单" "中间有一个空格。

3.22换行符打法

对于换行符也有两种打法,如endl和"\n"两种,这俩的区别是如果想让打印的结果更快的出现在屏幕上用endl,最后一个是字母L不是数字1。

 4.缺省参数:

C++中的缺省参数(default arguments)是指在函数定义时为某些参数指定默认值,这样在函数调用时可以不传递这些参数的值,而是使用默认值。

4.1全缺省参数:

缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则使用该默认值,否则使用指定的实参。

 4.2半缺省参数

半缺省就是多个参数时我们会写其中几个参数但不完全缺省。

注意: 1.缺省参数相当于一个备胎,当我们忘记传参时,程序自动填补。

            2.半缺省参数必须从右往左连续缺省,不能间隔。

5.函数重载

5.1函数重载概念:

它是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数,类型, 顺序)必须不同, 常用来处理实现功能类似, 数据类型不同的问题。

5.2重载应用:

例如当我们写一个交换函数时,那这个交换函数可能是整型也可能是浮点型。但是主函数中既有整型又有浮点型那我的调用函数是不是就要写两个类型呢?对,我们分别写整型形参和浮点型形参这两个相同名称的函数即可。

5.21类型不同

所以当系统需要调用整型时直接去找整形形参的函数即可。 

5.22顺序不同

个数不同就不说了,接下来说说顺序不同

 顺序不同并不是上面的形参顺序稍微交换,而且这样一交换对于机器来说识别效果还是两个double类型没变。

 就比如这个就是相对于机器来说识别的顺序改变了,所以叫做顺序改变。

5.23返回值构成重载吗?

 就问这个一个返回值是int, 一个返回值是short类型构成重载吗?

不构成,因为机器也无法区分。add(1,2)你说调用哪个?所以不构成重载。

注意:函数重载最大的意义是多个格式一样的函数支持统一调用。

目录

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值