首页 > 编程语言 >[C++入门]基础与语法

[C++入门]基础与语法

时间:2024-07-09 21:56:09浏览次数:12  
标签:std 运算符 入门 int 函数 数据类型 C++ 语法 cout

1. 数据类型

C++作为一种强类型语言,支持多种数据类型,这些数据类型用于声明变量、函数参数、返回值等。数据类型可以分为两大类:基本数据类型和复合数据类型。

基本数据类型
  • 整型(Integer Types):包括int(基本整型)、short(短整型)、long(长整型)、long long(超长整型)、char(字符型,虽常作为整型处理)等。它们用于存储整数值。
  • 浮点型(Floating-Point Types):包括float(单精度浮点型)、double(双精度浮点型)、long double(扩展精度浮点型)等。它们用于存储带小数点的数值。
  • 布尔型(Boolean Type)bool,用于表示真(true)或假(false)的逻辑值。

示例:

#include <iostream>  
  
int main() {  
    int num = 42; // 整型  
    float pi = 3.14f; // 浮点型,注意f后缀表示float类型  
    bool isTrue = true; // 布尔型  
  
    std::cout << "Number: " << num << ", PI: " << pi << ", Truth: " << (isTrue ? "True" : "False") << std::endl;  
  
    return 0;  
}

复合数据类型
  • 数组(Array):用于存储一系列同类型数据的集合。可以通过索引访问数组中的元素。
  • 结构体(Struct):用户自定义的复合数据类型,可以包含不同种类的数据(如整型、浮点型等)作为成员。
  • 类(Class):C++中的核心特性之一,是结构体的扩展,支持面向对象编程的三大特性:封装、继承和多态。
  • 指针(Pointer):存储变量地址的变量类型,通过指针可以间接访问和操作内存中的数据。
  • 引用(Reference):是变量的别名,通过引用可以直接访问和操作原变量的值,但必须在声明时初始化。

  示例(以数组为例):

#include <iostream>  
  
int main() {  
    int numbers[] = {1, 2, 3, 4, 5}; // 整型数组  
    for(int i = 0; i < 5; ++i) {  
        std::cout << numbers[i] << " ";  
    }  
    std::cout << std::endl;  
  
    return 0;  
}
2. 运算符与表达式

C++提供了丰富的运算符,用于执行各种算术、关系、逻辑等操作。

  • 算术运算符+-*/%(取模)等,用于执行基本的数学运算。
  • 关系运算符==!=<<=>>=等,用于比较两个表达式的值。
  • 逻辑运算符&&(逻辑与)、||(逻辑或)、!(逻辑非)等,用于组合或修改条件语句的真值。
  • 赋值运算符=(简单赋值)、+=-=*=/=等,用于给变量赋值或修改其值。
  • 位运算符&|^~<<>>等,用于对整数的二进制位进行操作。

注:表达式的求值和优先级遵循数学和编程的通用规则,通常需要使用括号()来改变默认的优先级顺序。

示例:

#include <iostream>  
  
int main() {  
    int a = 10, b = 20;  
    int sum = a + b; // 加法运算符  
    int product = a * b; // 乘法运算符  
  
    if(a < b) { // 关系运算符  
        std::cout << a << " is less than " << b << std::endl;  
    }  
  
    if(sum > 20 && product == 200) { // 逻辑运算符  
        std::cout << "Both conditions are true" << std::endl;  
    }  
  
    return 0;  
}
3. 控制结构
  • 条件语句
    • if-else:根据条件表达式的真假执行不同的代码块。
    • switch:根据表达式的值与多个case标签的匹配情况执行相应的代码块。
  • 循环语句
    • for:通过初始化、条件判断和迭代更新三个部分控制循环的执行。
    • while:当条件为真时,重复执行循环体。
    • do-while:至少执行一次循环体,然后检查条件,若为真则继续执行。

示例(条件语句): 

#include <iostream>  
  
int main() {  
    int score = 85;  
    if(score >= 90) {  
        std::cout << "Grade: A" << std::endl;  
    } else if(score >= 80) {  
        std::cout << "Grade: B" << std::endl;  
    } else {  
        std::cout << "Grade: Below B" << std::endl;  
    }  
  
    return 0;  
}

示例(循环语句): 

#include <iostream>  
  
int main() {  
    for(int i = 0; i < 5; ++i) {  
        std::cout << "Number " << i << std::endl;  
    }  
  
    return 0;  
}

 

4. 函数

函数是C++中组织代码的基本单位,用于实现特定的功能。

  • 函数的定义:包括返回类型、函数名、参数列表(可选)和函数体。函数体包含实现特定功能的代码。
  • 函数的调用:通过函数名和参数(如果有)来调用函数,执行函数体内的代码。
  • 参数传递
    • 值传递:调用函数时,实参的值被复制到形参中,函数内对形参的修改不会影响到实参。
    • 引用传递:通过引用(使用&操作符)传递参数,函数内对形参的修改会影响到实参。
    • 指针传递:通过指针传递参数,允许函数直接访问和修改实参指向的内存地址中的数据。
  • 递归函数:一个函数调用自身的函数。递归函数必须有一个明确的退出条件,以防止无限递归导致程序崩溃。

示例(函数的定义与调用):

#include <iostream>  
  
// 函数定义  
int add(int a, int b) {  
    return a + b;  
}  
  
int main() {  
    // 函数调用  
    int result = add(5, 3);  
    std::cout << "The sum is: " << result << std::endl;  
  
    return 0;  
}

示例(值传递,引用传递):

#include <iostream>  
  
// 值传递  
void incrementByValue(int x) {  
    x = x + 1; // 仅修改局部副本  
}  
  
// 引用传递  
void incrementByReference(int& x) {  
    x = x + 1; // 修改实际参数  
}  
  
int main() {  
    int num = 5;  
    incrementByValue(num); // num 不变  
    std::cout << "After value increment: " << num << std::endl; // 输出 5  
  
    incrementByReference(num); // num 增加  
    std::cout << "After reference increment: " << num << std::endl; // 输出 6  
  
    return 0;  
}

 

标签:std,运算符,入门,int,函数,数据类型,C++,语法,cout
From: https://blog.csdn.net/weixin_45843323/article/details/140307096

相关文章

  • Java基础入门了解,规范----入门篇1
    一.Java代码规范1.注释注释分类:1.单行注释:// 2.多行注释:/**/ 3.文档注释:/***/2.关键字java本身定义的一些单词,类似于public,class之内3.标识符在程序中定义的属性名,方法名,类名等等1.硬性要求:可以包含英文字母,0-9数字,$,_不能以数字开头关键字不能作为标识符2.软性......
  • Linux C++ 045-设计模式之工厂模式
    LinuxC++045-设计模式之工厂模式本节关键字:Linux、C++、设计模式、简单工厂模式、工厂方法模式、抽象工厂模式相关库函数:简单工厂模式基本简介从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactoryMethod)模式,但不属于23种GOF设计模......
  • 练习10.7_加法计算器_Python编程:从入门到实践(第3版)
    将为练习10.6编写的代码放在一个while循环中,让用户在犯错(输入的是文本而不是数)后能够继续输入数。#10.6try:expectwhileTrue:num1=input("请输入一个整数:")try:num1_int=int(num1)breakexceptValueError:print("......
  • Gradle基础:从入门到掌握
    人不走空                                          ......
  • Linux从入门到精通—— 如何在 Linux 系统中启用 Kubectl 命令自动补全
    如何在Linux系统中启用Kubectl命令自动补全一、背景在使用Kubernetes进行日常开发和运维工作时,kubectl命令行工具是不可或缺的一部分。为了提升工作效率,启用kubectl命令的自动补全功能是一个明智的选择。本文将指导你如何在基于Linux的系统上安装并配置kubectl命令的......
  • 网络安全工程师需要学什么?零基础怎么从入门到精通,看这一篇就够了
    前言我发现关于网络安全的学习路线网上有非常多看似高大上却无任何参考意义的回答。大多数的路线都是给了一个大概的框架,告诉你那些东西要考,以及建议了一个学习顺序。但是这对于小白来说是远远不够的,有的可能还会有误导性!比如说很多的学习路线会说要从语言开始学起,于是很......
  • Eureka入门
    Eureka是一种服务发现工具,广泛应用于微服务架构中。它主要由Netflix开源,帮助服务在分布式系统中自动注册和发现。以下是Eureka的基本入门指南。前提条件在开始之前,确保你已经安装了以下软件:JDK8或更高版本Maven或Gradle步骤1:创建Eureka服务器创建一个SpringBoot项目,可......
  • 【狂神说Java】系列学习笔记01——MarkDown语法
    #MarkDown学习本文为B站老师秦疆【狂神说Java】系列,课堂学习笔记,主要联练习的是MarkDown的使用方法,老师的博客链接我没找到,广告1.标题+加粗2级3级4级5级6级最多七级标题Helloworld!Helloworld!Helloworld!Helloworld!引用-沐风6标题一级标题(#+空格)二......
  • C++关于计算浮点数小数位数时遇到的浮点数精确度问题(以及浮点数强制转换问题)
    起因是当我想要计算浮点数的小数位位数(利用当浮点数num减去其整数位)我的想法是先分离出小数位,然后每次循环给小数位乘上10,直到不存在小数位时,就会满足当num-(int)num==0通过这种方式就可以得到小数位的长度#include<iostream>usingnamespacestd;intmain(){doubl......
  • PLC CODESYS 学习:入门第一步(辅助资料)
    CodeSys平台的基本功能和编程技能掌握:>>PDF书籍:《CODESYS-V4-基础编程指南完整版.pdf》《开放式控制系统编程技术基于IEC 61131-3国际标准.pdf》>>中文在线帮助手册:《CODESYSDevelopmentSystem》链接:CODESYSOnlineHelp>>错误查找:在帮助手册上查找SMC_ERROR(ENUM)可......