首页 > 编程语言 >【C++编程】数组、函数、结构体、指针、类

【C++编程】数组、函数、结构体、指针、类

时间:2024-07-13 16:25:33浏览次数:12  
标签:const 函数 int sum 编程 C++ my 指针

  • 数组:存储一个 固定大小相同类型 元素的顺序集合
    • 声明、初始化type arrayName [size0][size1] ... = {{value00, value01, ...}, {value10, value11, ...}, ...};
      int my_array[2][3] = {{1,2,3},{4,5,6}};
      
    • 访问数组元素arrayName [index0][index1]...;
       int get_element01 = my_array[0][1]; // 获得对应值 2
      

  • 函数:代码模块封装
    • 大型项目中:创建.h头文件,.cpp源文件,在头文件中写函数声明,源文件中写函数定义, #include "xx.h"即可使用.
    • 声明: 在函数定义前先告诉编译器 函数名称及如何调用: 代码按行执行,防止调用时找不到
      • 返回值类型 函数名(参数列表 类型+名);
      • 可以声明多次 (一般在 .h 头文件)
      int my_func(int a, int b);
      
    • 定义: 函数功能代码编写
      • 返回值类型 函数名(参数列表 类型+名){函数体语句; return 表达式}
      • 只能定义一次 (一般在 .cpp 源文件)
      int my_func(int a, int b)   // 没有返回值则可定义为`void`类型
      {
      	int sum = a + b;
      	return sum;
      }
      
    • 调用: 可以进行值传递或者地址传递
      // 方法一 - 值传递 (形参改变不会影响实参):函数名(参数值);
      int get_sum = my_func(1, 1); // 获得对应值 2
      
    • 重载:同一个作用域下,可以有一组函数名相同,函数参数类型、个数或者顺序不同的函数
      int my_func(int a, int b)   
      {
      	int sum = a + b;
      	return sum;
      }
      int my_func(int a, int b, int c)  
      {
      	int sum = a + b + c;
      	return sum;
      }
      
      // int get_sum = my_func(1, 1);
      // int get_sum = my_func(1, 1, 1);
      // 上述均可正常执行函数调用
      

  • 结构体:自定义数据类型
    • 创建struct 结构体名 {结构体成员列表}
      struct my_struct
      {
      	int a;
      	float b;
      }
      
      
    • 实例结构体名 变量名变量名.成员名=成员值
      // 结构体指针使用 `->` (而非 `.`) 访问结构体变量
      struct my_struct s;
      s.a = 1;
      s.b = 1.1; 
      

  • 指针:指针其实就是一个地址
    • 一般指针类型 * 变量名 = NULL
      int a = 10;
      int * p =  NULL;
      p = &a; 	 		 // `&`取地址,获取 a 对应地址
      int value_a = *p; // `*`取值, 获取对应值 10
      
    • 特殊的,const 修饰的指针:常量指针、指针常量 …
      • 常量指针 - const 修饰指针(const int * p):指针指向的值(*p=)不可以改
      • 指针常量 - const 修饰常量(int * const p):指针的指向(p=)不可以修改
      • const 修饰指针和常量(const int * const p) :都不可以修改

  • :封装、继承、多态
    • 定义:编写类名、成员属性和函数
      class 类名
      {
      	public:  //(成员在类内外可以访问) 或者protected(仅类内,可被继承)、private(仅类内,不可被继承)
      		// 成员属性
      		int AAA;
      		int BBB;
      		int CCC;
      		
      		//成员函数:一般功能函数、以及构造、析构函数
      		
      	    // -- 构造函数,创建对象的时候,构造函数自动调用
      		// 如果自己不写,有默认的 构造函数 和 拷贝构造函数(值拷贝,注意是浅拷贝-共享内存)
      		// 写法一:
      		类名(int a, int b, int c)  // 可以有参数可重载
      		{
      			// 构造函数主体	
      			AAA = a;
      			BBB = b;
      			CCC = c;
      			// 没有返回值
      		}
      		// 写法二:利用初始化列表,效果同写法一
      		类名(int a, int b, int c): AAA(a), BBB(b), CCC(c)
      		{
      		}
      		
      		// -- 析构函数:销毁对象的时候,析构函数自动调用
      		~类名() // 不可以有参数,不可重载
      		{
      			// 析构函数主体
      		}
      }
      
    • 生成对象: 类名 对象名(构造函数参数);
    • 结构体和类的区别:struct的默认权限是public, class的默认权限是private.

【黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难】

标签:const,函数,int,sum,编程,C++,my,指针
From: https://blog.csdn.net/CODE_RabbitV/article/details/140372201

相关文章

  • 生成对抗网络编程
    一、基础知识PyTorch提供简单的计算误差方法。最简单的均方误差:先计算每个输出节点的实际输出和预期输出之差的平方,再计算平均值。nn.MSELoss()误差函数&&损失函数误差是指预期输出与实际输出之间的差值。损失是指根据误差计算得到的,要考虑实际情况。1、构建和训练G......
  • 【洛谷】P5728 【深基5.例5】旗鼓相当的对手——C++
    本题感想:本题主要是应该避免重复比较,以a,b,c,d为例,我们假设先a不动,依次比较d,c,b或者b,c,d,然后假设b不动,依次比较c,d,最后假设c不动,比较d,这样这道题就差不多解决了#include<iostream>#include<cmath>usingnamespacestd;intmain(){inta[1010][3],s[1010]={0......
  • 全栈物联网项目:结合 C/C++、Python、Node.js 和 React 开发智能温控系统(附代码示例)
    1.项目概述本文详细介绍了一个基于STM32微控制器和AWSIoT云平台的智能温控器项目。该项目旨在实现远程温度监控和控制,具有以下主要特点:使用STM32F103微控制器作为主控芯片,负责数据采集、处理和控制逻辑采用DHT22数字温湿度传感器,精确采集环境温湿度数据通过ESP8266WiF......
  • 全网最适合入门的面向对象编程教程:16 类和对象的Python实现-多态、方法重写与开闭原则
    全网最适合入门的面向对象编程教程:16类和对象的Python实现-多态、方法重写与开闭原则摘要:本文主要介绍了Python中创建自定义类时子类如何实现对父类方法的重写、方法重写的定义和多态的基本概念,并对开闭原则进行介绍。原文链接:FreakStudio的博客往期推荐:学嵌入式的你,......
  • Cuda并行编程:组织线程模型
    重点计算线程唯一标识,并确保没有线程越界的技巧:以下列英伟达官方的Cuda程序示例为例子/*Copyright(c)2022,NVIDIACORPORATION.Allrightsreserved.**Redistributionanduseinsourceandbinaryforms,withorwithout*modification,arepermittedprovide......
  • C++数组 字符串
    是什么:相同类型元素的集合写法:intexample[3]//数组在声明大小时必须为常数数组名example是个指针类型如int*ptr=example;数组索引的工作原理:example[3]//从首地址位置偏移数组类型大小(int是4字节)乘索引值(4*3)个字节//从当前字节位置往后读四个字节;可能出现的错误:ex......
  • 解决Microsoft Visual C++ runtime package找不到问题
    使用了Dism++进行电脑清理,不小心选择了下面两个内容:尤其是第二个packagecache绝对不能清空,否则不知道哪个软件就不能运行了,报MicrosoftvisualC++runtime问题.然后再安装各个版本MicrosoftvisualC++redis仍会报同样的问题,死循环了.网上有各种解决方案,有......
  • C++中的可见性 指针 笔记
    含义:谁能看到他们谁能调用?谁能使用?可见性的修饰符:private含义:只有其所在的类可以访问,被修饰的变量但是friend关键字可以让类或者函数成为朋友(友元)可以在别处访问私有成员protected含义:所在的类和层次结构中的所有子类可以访问这些符号例子:classprintable{prot......
  • 0173-GDB 调试汇编程序
    环境Time2022-11-12WSL-Ubuntu22.04QEMU6.2.0NASM2.15.05前言说明参考:https://os.phil-opp.com/multiboot-kernel/参考:https://ncona.com/2019/12/debugging-assembly-with-gdb/目标编写一个简单的汇编程序,使用GDB进行调试。汇编程序section.textglobal......
  • Python项目开发实战,掷硬币的连胜,案例教程编程实例课程详解
    在Python中进行实战项目,比如模拟掷硬币并记录连胜次数,是一个既有趣又能加深理解随机数生成、循环控制、条件判断等编程基础的好方法。下面,我将逐步引导你完成一个详细的Python项目,该项目将模拟掷硬币的过程,并追踪记录连胜的次数,同时我们会深入探讨一些编程概念,如函数封装、异常......