c++相对c的增强

1:命名空间和头文件
命名空间:解决合作开发时命名冲突问题
标准化头文件如iostream,fstream等都位于标准化空间std中,并且c支持的头文件以c开头并且去掉.h如(cstdio,cstdlib,cstring),使用时要加上using namespace std;语句。
而保留的老版头文件则不在标准命名空间std中例如iostream.h等。新旧头文件不对功能进行大幅修改,只改动微小细节,因此新旧头文件并不是一一对应。
命名空间,域解析符::的使用:

#include <iostream>
using namespace std;
namespace A//自定义命名空间,可包含结构体,函数
{
       int a;
       struct stu
       {
              int age;
              char name[10];
        };
       namespace B//命名空间中嵌套命名空间
       {
           int a;
       }
       void print()
       {
           printf(“hello world”);
       }
}
int main()
{
    A::a = 11;
    A::B::a = 22;
    A::print();
    /*结构体书写形式*/
    struct A::stu demo;
    demo.age = 21;

    cout << A::a << endl;
    cout << A::B::a << endl; 
    cout << “struct:” << demo.age << endl;

    return 0;
}

2:iostream输入输出流头文件
cin是iostream类的一个实例。
头文件中定义了cin,cout,cerr,clog等象。用于标准输入输出,非缓冲错误,缓冲日志流。
char str[10] = “aaa”;
cout << str << “hello” << endl;
输出:aaahello并且换行。
3:变量使用时定义减小生命周期,节省内存空间
for(int i=0;i <10;i ++){}
i变量只在for循环中有效;

4:布尔类型bool
布尔类型变量自动转换为0和1两个值。

5:三目运算符
在c语言中,三目运算符输出的是值,不可作为左值被修改,而在c++中,输出的是变量,可被修改。

6:auto关键字
自动推导数据类型,必须初始化。一般情况写明数据类型,auto有特殊用途。
7:const
const是在c中是伪常量,可以用指针指向变量并且修改。
在c++中是真常量,常量数值存放在符号表中没有内存空间,不能被修改,指向他的是一块没用的地址
8:引用,变量的别名
定义的时候必须初始化绑定,一个指定对象且不可终于修改。
优:避免形参创建,更快的参数传递。
在两个值交换函数中,void swap(int &a,int &b)能直接交换ab值不用传地址。
常引用:const int &a;不希望通过引用修改原值。(类比linuxAPI open函数int open(const char *path,int flags)只强调引用,而不希望修改path)
constexpr:常量表达式,在编译时就确定计算结果,将表达式直接替换成最终结果,相对于宏来说没有额外开销更加可靠安全。

9:动态内存分配new 和delete
使用格式:
1:指针变量名=new int;
2:指针变量名=new int(5);初始化为5
3:指针变量名=new int[5];申请内存单元格个数(相对于申请动态数组)
申请二维数组:

int **p = new int*[num1];
for(int i=0; i <num1; ++i)
p[i] = new int[num2];

//释放二维数组占用的空间
for(int m=0;m <num1;m++)
delete[] p[m];
delete[] p; 

10:using代替typedef
using INT = int;
可以写在函数里面,限定作用域。
问:
1:指针与引用区别
1:本质,指针是一个变量保存地址,引用是原变量的别名。
2:引用不为null创建时初始化,指针可以为null,任何时候初始化
3:二级指针,无二级引用
4:sizeof
5:引用初始化后就不能改变了
6:swap(int &a,int &b)实参就是引用,指针要去接收。所以引用效率高

2:new与malloc区别
1:关键字,库函数
2:malloc一次性申请,new分块分配
3:返回值void*强转
4:new抛出异常,malloc返回null
5:malloc可分配任意字节,new只能是内存整数倍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Dev C++是一款免费的集成开发环境(IDE),主要用于C和C++语言的编程。它提供了一个直观且易于使用的界面,适合新手学习和开发C和C++程序。 Dev C++ 5.11是其中的一个版本,在新版本中,开发者提供了一些更新和改进。其中一项改进是对编译器的更新,包括GCC编译器的最新版本。这使得Dev C++能够支持更多的C和C++语言特性,以及更好的代码生成和性能优化。 此外,Dev C++ 5.11还提供了更好的用户体验和工具,例如更快的编译速度、更强大的代码自动完成功能,以及改进的调试器和错误提示。这些功能的改进使得开发者能够更高效地开发和调试项目。 总的来说,Dev C++ 5.11是一个经过改进的集成开发环境,它的目标是提供一个友好和功能强大的平台供C和C++编程。无论是初学者还是有经验的开发者,都可以使用Dev C++来进行代码编写、调试和运行。 ### 回答2: "Dev C++ 5.11" 是一个免费的集成开发环境(IDE),适用于C和C++编程语言。它是用于Windows操作系统的一个开发工具,为开发人员提供了编写、调试和执行C和C++代码的平台。 Dev C++ 5.11有许多功能和优点。首先它具有简单易用的界面,适合初学者和有经验的开发者。它提供了代码自动完成和语法高亮等功能,使代码编写更加快捷和方便。 除此之外,Dev C++ 5.11还具有强大的调试功能,可以帮助开发人员定位和修复程序中的错误。它支持断点、监视变量和单步执行,可以逐行查看代码的执行过程,帮助开发者进行程序调试和故障排除。 Dev C++ 5.11还具有多种编译器选项,开发者可以选择不同的编译器来编译和运行代码。这使得开发者可以根据需要选择最适合自己项目的编译器,从而提高代码的性能和效率。 总结而言,Dev C++ 5.11是一个功能强大且易于使用的集成开发环境,适用于C和C++编程语言。它提供了丰富的功能和选项,帮助开发人员编写、调试和执行代码。无论是初学者还是有经验的开发者,都可以通过Dev C++ 5.11来开发高质量的C和C++程序。 ### 回答3: Dev-C++是一款集成开发环境(IDE),用于在Windows平台上进行C和C++编程。版本号5.11通常表示软件的更新版本,它可能包含了一些修复bug和改进性能的更新。Dev-C++5.11版本相对较新,可能提供了更好的用户体验和更高的稳定性。 与先前版本相比,Dev-C++ 5.11可能会引入一些新功能和特性。这些新功能可能包括更强大的代码编辑器,更丰富的代码自动补全功能,更好的错误检查和调试工具等。在开发过程中,这些新功能可以提高代码的编写效率和质量,并且可以更轻松地定位和解决错误。 此外,Dev-C++5.11版本可能还修复了一些在之前版本中已知的bug或问题。这些修复可以增强软件的稳定性和可靠性,减少在开发过程中出现意外错误的可能性。 总之,Dev-C++5.11是一款用于C和C++编程的IDE,版本号可能代表了软件的更新和改进。使用这个更新版本可以提供更好的用户体验、更高的稳定性,以及一些新的功能和改进。对于正在使用Dev-C++的开发人员来说,升级到5.11版本可能会带来更好的编程体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值