C++现代编程技术_写给工程师的C++教程

作者: [德]彼得·哥特史林(Peter Gottschling)
出版社: 人民邮电出版社
出版年: 2024-7
ISBN: 9787115637642

Clion 编程环境设置

使用g++编译器,命令行程序的 CMakeLists.txt 加入 set(CMAKE_EXE_LINKER_FLAGS "-static")

# CMakeLists.txt
cmake_minimum_required(VERSION 3.29)
project(cppConsoleTest)

set(CMAKE_CXX_STANDARD 17)

# 设置为静态链接
set(CMAKE_EXE_LINKER_FLAGS "-static")

add_executable(cppConsoleTest main.cpp)

第1章 C++基础

  • cout<< 是把输出对象传向cout对象
  • gcc 的long double是128位的,clang不一定,字面量赋值不加L默认是double类型,加L的作用是防止丢失精度
#include <iomanip>  // to use setprecision()
#include <iostream>

int main()
{
    std::cout << "sizeof(long double):"<<sizeof(long double) << std::endl;
    long double LD1 = 3.333333333333333333333333;
    long double LD2 = 3.333333333333333333333333L;
    std::cout<< std::fixed << std::setprecision(20) ;
    std::cout << "LD1: " << LD1 << std::endl;
    std::cout << "LD2: " << LD2 << std::endl;

    return 0;
}
/*
sizeof(long double):16
LD1: 3.33333333333333348136
LD2: 3.33333333333333333326
*/

同名变量与作用域:

#include <iostream>
using namespace std;
int main()
{
    int a=100;
    cout<<"a="<<a<<endl; // 100
    {
        a+=100;
        cout<<"a="<<a<<endl;  //200
        int a=-100;
        cout<<"a="<<a<<endl; //-100
        a+=-100;
        cout<<"a="<<a<<endl; //-200
    }
    cout<<"a="<<a<<endl; //200
    return 0;
}

整数类型long int 或者long,就是int,只有32位,对应最大值 2147483647, 书上的例子并不正确,取值已经超出了long 的范围。

#include <iostream>
using namespace std;
int main()
{
    long L1=2147483647;
    long L2=(L1 + 1.0f) -1.0;
    long L3=L1 + (1.0f-1.0);
    cout<<"L1 = "<<L1<<endl;
    cout<<"L2 = "<<L2<<endl;
    cout<<"L3 = "<<L3<<endl;
    cout<<"sizeof(long):"<<sizeof(long)<<endl;
    return 0;
}
/*
L1 = 2147483647
L2 = 2147483647
L3 = 2147483647
sizeof(long):4
*/

正文完
 0
评论(没有评论)