c++那些冷知识

C++是一种面向对象的程序设计语言,最初是由Bjarne Stroustrup在20世纪80年代早期开发的。它是C的扩展,增加了许多新的特性,例如类、继承、虚函数、多态等。

以下是C++0基础知识:

  1. 标准输入输出

标准输出使用cout,使用<<"输出。例如:

cout << "Hello World!" << endl;

标准输入使用cin,使用>>"输入。例如:

int num;
cin >> num;

  1. 变量和类型

C++中有多种基本数据类型,例如int、double、float、char等等。要声明一个变量,需要指定类型和名称,例如:

int x;
double y;
char c;

  1. 控制流语句

C++中有if-else语句、while循环、for循环等控制流语句。例如:

if (x > 0) {
    cout << "x is positive" << endl;
} else {
    cout << "x is not positive" << endl;
}

while (x < 10) {
    cout << x << endl;
    x++;
}

for (int i = 0; i < 10; i++) {
    cout << i << endl;
}

  1. 函数

C++中可以定义和调用函数。函数有返回值和参数,例如:

int add(int a, int b) {
    return a + b;
}

int result = add(3, 4);

  1. 数组(详细去看0基础都可以学费c++数组的使用-CSDN博客

C++中可以定义数组,数组是一个相同类型的元素集合。例如:

int arr[5] = {1, 2, 3, 4, 5};

什么?不够冷??

以下是一些C++的非常非常冷的知识(冬天冷++):

  1. 指针运算符

除了常见的取地址符&和解引用符*,C++还有几个其他的指针运算符。例如:

  • 指针加减:可以将指针加上或减去一个整数,以访问指针指向的不同位置。
int arr[5] = {1, 2, 3, 4, 5};
int* ptr = arr;
cout << *(ptr+2) << endl; // 输出3

  • 指针比较:可以比较两个指针的大小关系,以判断是否指向同一块内存或者哪一个指针更靠前。
int arr[5] = {1, 2, 3, 4, 5};
int* ptr1 = &arr[1];
int* ptr2 = &arr[3];
cout << (ptr1 < ptr2) << endl; // 输出1 (true)

  1. 右值引用

C++11引入了右值引用的概念,可以将一个值的引用限制为只能绑定到右值上。右值引用一般用来实现移动语义和完美转发。例如:

void foo(string&& str) {
    // 使用右值引用的字符串
}

foo("hello"); // 将字符串"hello"作为右值传递给foo函数

  1. 模板函数的偏特化

C++中的模板函数可以使用偏特化的技术,针对某些特定情况提供特殊的实现。例如:

template<typename T1, typename T2>
void foo(T1 t1, T2 t2) {
    // 一般情况的实现
}

template<typename T>
void foo(T t1, int t2) {
    // t2为int类型的特殊实现
}

foo(1.0, 2); // 调用一般实现
foo("hello", 2); // 调用针对int的特殊实现

  1. lambda表达式

C++11引入了lambda表达式,可以用来创建匿名函数。lambda表达式可以捕获外部变量,并且可以指定返回类型。例如:

int x = 5;
auto f = [=]() -> int {
    // 捕获x,并返回x的平方
    return x*x;
};

cout << f() << endl; // 输出25

  1. 静态断言

C++11引入了静态断言的概念,可以在编译时检查某些条件是否成立,如果不成立则会产生编译错误。静态断言语法为static_assert(条件表达式, 错误信息),例如:

static_assert(sizeof(int) == 4, "int必须是4个字节"); // 如果int不是4个字节,则编译错误

以上是一些C++的冷知识,了解这些知识可以让开发者更深入地理解C++语言。

好了剩下的我不会了😊😒(;´д`)ゞ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值