首页 > 编程语言 >C++入门级基础知识汇总

C++入门级基础知识汇总

时间:2022-12-07 23:13:13浏览次数:39  
标签:case int C++ 基础知识 char 入门级 printf 指针

知识来源:https://www.imooc.com/learn/1304

     https://www.runoob.com/cplusplus/cpp-tutorial.html

 

编程第一步导入头文件:

#include <stdio.h> std=standard io= into out

#include <iostream>

 

编程第二步,写主函数:

int main(int argc,char **argv)

{

//argc表示参数个数,argv表示参数组,一起表示该程序的启动参数

}

 

输入:

scanf("%d", &a); std::cin>>a>>b; //scanf函数会提前设定读取类型,而cin则不需要,更加灵活

输出:

printf("a: %d, b: %d", a, b); std::cout<<’字符串’<<a<<std::endl; //printf中需要提前设定好“”中的格式化内容和后面的参数,而cout则不需要,只需要将要输出的内容使用<<连接起来即可

 

C++基础数据类型

图形用户界面, 应用程序

描述已自动生成 图形用户界面, 文本, 应用程序

描述已自动生成

char的大小==unsigned char

long long >= long >= int >= short >= char

 

格式转化:

  1. 显示格式转换

int a;

short b = (short)a; //以大转小时必须采用显示转化来告诉计算机我们默许数据丢失

  1. 隐式格式转化

short a = 100;

int b = a; //当以小转大时我们可以直接使用隐式转化也不会报错,因为不会丢失精度

图示

描述已自动生成

 

C++结构体:

类似于面向对象编程中的类

图形用户界面, 文本, 应用程序

描述已自动生成

 

C++枚举类型

文本

描述已自动生成

 

指针:

没有指向的指针称为野指针,对野指针进行操作是十分危险的,因为若野指针指向的数据正是别的程序的关键数据,则会造成不可逆转的影响,若在操作系统中,这样操作野指针的操作则会直接导致程序被杀死,故我们需要事先将野指针赋为空指针。

指针赋空的三种操作

*p = nullptr;

*p = NULL; //NULL = 0 但nullptr是新版指针专属的null,更新更有规格

*p = 0;

指针操作详解:

int a,b = 3,4;

int *i = &a; // 定义一个指针变量,让其值等于a的地址

int *j;

j = &b; //但在定义之后再对指针赋指针值则不能使用‘*j’,因为此时 *j已经代表实际指针指向的数据块,我们不能对实际的代码块赋值指针。进行输出时,*j等同于b,j等同于&b

指针实际案例1:通过指针交换两个变量的内容

#include <stdio.h>

void change(int *a, int *b) {

int c = *a;

*a = *b;

*b = c;

}

int main(int argc, char** argv)

{

int a = 3;

int b = 4;

change(&a, &b);

printf("a:%d,b:%d", a, b);

}

 

 

C++存储变量的方式:

  1. 普通声明的变量采用栈进行存储,当{}作用域结束时变量将会自动释放
  2. 使用malloc()声明时,将采用堆存放,只有当使用free()时才会手动释放

 

C++数组:

数组名是指向数组中第一个元素的指针

图片包含 图示

描述已自动生成

且是一个特殊的常量指针,不可以修改,但可以使用来访问

图形用户界面, 文本, 应用程序

描述已自动生成

在一个指针连续声明的空间中,我们也可以用数组的方式去访问指针空间中的数据。

图表, 箱线图

描述已自动生成

文本

中度可信度描述已自动生成

 

C++判断if和else if

#include <stdio.h>

enum Week

{

Mon, // 星期一

Fri, // 星期五

Sat, // 星期六

Sun, // 星期日

};

int main(int argc,char **argv)

{

Week week = Week::Fri;

if(week == Week::Mon) {

printf("Mon\n");

}

else if(week == Week::Fri) {

printf("Fri\n");

}

else if(week == Week::Sat) {

printf("Sat\n");

}

else{

printf("Sun\n");

}

return 0;

}

Switch case和default、break

#include <stdio.h>

int main(int argc,char **argv)

{

int s = 5;

switch (s) {

case 1:

printf("1\n");

break;

case 2:

printf("2\n");

break;

case 3:

printf("3\n");

break;

case 4:

printf("4\n");

break;

case 5:

printf("5\n");

break;

case 6:

printf("6\n");

break;

default:

printf("unknow\n");

}

return 0;

}

 

 

C++的for循环

文本

描述已自动生成

While循环

文本, 信件

描述已自动生成

For和while的区别

图片包含 图示

描述已自动生成

do while:一种对while的补充/一种用于完成和循环无关操作的循环结构。先执行再判断

图形用户界面, 文本

描述已自动生成

图形用户界面, 文本, 应用程序

描述已自动生成

 

内联函数inline

函数在调用时会使用栈空间拷贝参数、分配内存,因此会造成额外的内存消耗,因此在一些不必要的地方(调用次数过少)可以使用内联函数,将函数直接翻译进代码块中,不进行额外的函数调用,内联函数以代码膨胀(代码块增大)为代价进行优化。

inline int add(int a, int b)

{

return a + b;

}

int main(int argc,char **argv)

{

int a = 5;

int b = 10;

int c = add(a + b);

return 0;

}

//等价于

int main(int argc,char **argv)

{

int a = 5;

int b = 10;

int c = a + b;

return 0;

}

 

标签:case,int,C++,基础知识,char,入门级,printf,指针
From: https://www.cnblogs.com/wosun/p/16964830.html

相关文章

  • C++
    通讯录管理系统1、系统需求通讯录是一个可以记录亲人、好友信息的工具。本教程主要利用C++来实现一个通讯录管理系统系统中需要实现的功能如下:添加联系人:向通讯录中......
  • C++《面向对象课程设计》题目
    C++《面向对象课程设计》题目面向对象编程课程设计参考内容课程名称:《面向对象课程设计》设计题目:学生选课系统;订票系统;运动会分数统计系统;通信录管理系统;歌咏比赛......
  • Java基础-8(基础知识练习)
    Java基础-8(基础知识练习)案例1减肥计划案例2敲七案例3不死神兔案例4百钱百鸡案例5数组元素求和案例6数组内容比较案例7查找案例8反转......
  • 从稍微懂一点开始的C++学习之路1: 智能指针
    从稍微懂一点开始的C++学习之路1智能指针因为之前一直是搞qt的,没有搞过纯c++,所以现在算得上是刚开始学纯C++。C++的大部分语法其实我都懂,主要的是一些规范,还有内存回收等......
  • [c++11新特性]12-类型萃取
    ​​c++11/14类型萃取​​类型萃取所谓类型萃取,就是依靠模板的方式,来判断一个类型是否拥有某些特性,比如A类型和B类型是否相同,C类型是否有某个成员变量,D类型是否有某个方法,或......
  • C/C++计时函数
    计时函数介绍time函数原型`time_ttime(time_t*timer)`,time函数是c-runtime库里的函数。此函数返回从1970年1月1日00:00:00(UTC时间)到此刻所经过的总秒数,所以使用此函数......
  • 无法在Unreal Engine中使用C++创建Struct
    1)无法在UnrealEngine中使用C++创建Struct​2)Unreal中,如何在一个视口内显示多个摄像机视口3)如何能和UGUI里面的图片做个动画一直旋转,实现Loading效果4)UIToolkit中ListView......
  • c++练习272题:金币
    *272题原题传送门:http://oj.tfls.net/p/272题解:(遍历,60分)#include<bits/stdc++.h>usingnamespacestd;longlongallday;//总天数longlongpas;//已经过去longlongmo......
  • 私有继承和保护继承的访问规则是什么?c++
    以这些类为例:classB{/*...*/};classD_priv:privateB{/*...*/};classD_prot:protectedB{/*...*/};classD_publ:public......
  • Android.mk基础知识
    Android.mk用于构建系统描述源文件和共享库,它实际上是一个微小的GNUmakefile片段,构建系统会将其解析一次或多次。1.AOSP示例我们以hello-jni开始熟悉Android.mk,位于And......