C++基础语法入门


1.使用命名空间using namespace std;

extern

这个是全局变量声明extern关键字的全局变量和函数可以使得它们能够跨文件被访问。
我也不知道有啥用,用这个和不用这个的效果没什么区别~~~

常量

85         // 十进制
0213       // 八进制 
0x4b       // 十六进制 
30         // 整数 
30u        // 无符号整数 
30l        // 长整数 
30ul       // 无符号长整数
//浮点类型的常量
3.14159       // 合法的 
314159E-5L    // 合法的 
510E          // 非法的:不完整的指数
210f          // 非法的:没有小数或指数
.e55          // 非法的:缺少整数或分数

转义字符

define定义内容

#include <iostream>
using namespace std;
 
#define LENGTH 10   
#define WIDTH  5
#define NEWLINE \\'\n\\'

int main()
{
 
   int area;  
   
   area = LENGTH * WIDTH;
   cout << area;
   cout << NEWLINE;
   return 0;
}

常量

const int  LENGTH = 10;

修饰符

short int i;           // 有符号短整数
short unsigned int j;  // 无符号短整数

静态变量

这个可以起到存储的作用,比如下面这个例子

int main()
{
    while(count--)
    {
        func();
    }
    return 0;
}
// 函数定义
void func( void )
{
    static int i = 5; // 局部静态变量
    i++;
    std::cout << "变量 i 为 " << i ;
    std::cout << " , 变量 count 为 " << count << std::endl;
}
//输出结果
变量 i 为 6 , 变量 count 为 9
变量 i 为 7 , 变量 count 为 8
变量 i 为 8 , 变量 count 为 7
变量 i 为 9 , 变量 count 为 6
变量 i 为 10 , 变量 count 为 5
变量 i 为 11 , 变量 count 为 4
变量 i 为 12 , 变量 count 为 3
变量 i 为 13 , 变量 count 为 2
变量 i 为 14 , 变量 count 为 1
变量 i 为 15 , 变量 count 为 0

运算符

一些简单的包括逻辑运算我这里不讲,这里说一下位运算

int a = 60;      // 60 = 0011 1100
int b = 13;      // 13 = 0000 1101
int c=0;
c = a & b;                // 12 = 0000 1100(与运算
c = a | b;             // 61 = 0011 1101(或运算
c = a ^ b;             // 49 = 0011 0001 (异或操作
c = ~a;                // -61 = 1100 0011(翻转
c = a << 2;            // 240 = 1111 00004(左移运算
c = a >> 2;            // 15 = 0000 1111(右移运算

杂项运算符

函数

函数传值可以设置默认值

#include <iostream>
using namespace std;
 
int sum(int a, int b=20)
{
  int result;
 
  result = a + b;
  
  return (result);
}
 
int main ()
{
   // 局部变量声明
   int a = 100;
   int b = 200;
   int result;
 
   // 调用函数来添加值
   result = sum(a, b);
   cout << "Total value is :" << result << endl;
 
   // 再次调用函数
   result = sum(a);
   cout << "Total value is :" << result << endl;
 
   return 0;
}

Lambda 函数与表达式

参考https://www.cnblogs.com/DswCnblog/p/5629165.html

默认格式
[capture list] (params list) mutable exception-> return type { function body }

capture list:捕获外部变量列表
params list:形参列表
mutable指示符:用来说用是否可以修改捕获的变量
exception:异常设定
return type:返回类型
function body:函数体

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(int a, int b)
{
    return  a < b;
}
int main()
{
    vector<int> myvec{ 3, 2, 5, 7, 3, 2 };
    vector<int> lbvec(myvec);

    sort(myvec.begin(), myvec.end(), cmp); // 旧式做法
    cout << "predicate function:" << endl;
    for (int it : myvec)
        cout << it << \' \';
    cout << endl;

    sort(lbvec.begin(), lbvec.end(), [](int a, int b) -> bool { return a < b; });   // Lambda表达式
    cout << "lambda expression:" << endl;
    for (int it : lbvec)
        cout << it << \' \';
}

值的捕获

int main()
{
    int a = 123;
    auto f = [&a] { cout << a << endl; }; 
    a = 321;
    f(); // 输出:321
}

传递参数

cout << "n:" << [](int x, int y) { return x + y; }(5, 4) << std::endl;            //输出n:9

数学运算

// 设置种子
srand(time(NULL));
//生成随机数
cout << rand();

数组

//c++数组
int a[5]={1,2,3,4,5};
cout << a[0]<<endl;
int b[5];
b[1]=5;
//其他的如果没有初始化就会生成一个随机数
cout << b[1]<<"|"<<b[2];
//输出结果
1
5|1975897280

指向指针的数组(使用两种方法遍历数组)

int main ()
{
   // 带有 5 个元素的双精度浮点型数组
   double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
   double *p;
 
   p = balance;
 
   // 输出数组中每个元素的值
   cout << "使用指针的数组值 " << endl; 
   for ( int i = 0; i < 5; i++ )
   {
       cout << "*(p + " << i << ") : ";
       cout << *(p + i) << endl;
   }
 
   cout << "使用 balance 作为地址的数组值 " << endl;
   for ( int i = 0; i < 5; i++ )
   {
       cout << "*(balance + " << i << ") : ";
       cout << *(balance + i) << endl;
   }
 
   return 0;
}

给函数传递数组

void print(int *p){
    cout << p<<endl; //输出这个数组的地址
    cout << &p[0]<<endl; //输出这个数组的地址(和上面这个是一样的
    cout << p[1]<<endl; //输出2
}
void print2(int a[5]){
    cout << a[1]<<endl;//输出2
}
void print3(int a[]){
    cout << a[1]<<endl;//输出2
}

int main()
{
    int a[5]={1,2,3,4,5};
    print(a);
    print2(a);
    print3(a);
}

字符串

//下面这个三个输出的结果是一样的
char a1[6]= {\'h\', \'e\',\'l\',\'l\',\'o\',\'\0\'}; //结尾一定要加\0要不然会输出类似hello?@
char a3[6]= "hello";
char a4[]= "hello";//数字可以不加

字符串函数


文章作者: 小游
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小游 !
  目录