首页 > 编程语言 >C++入门(2)

C++入门(2)

时间:2024-11-24 17:00:25浏览次数:11  
标签:初始化 变量 常量 int double C++ define 入门

变量

变量的创建:数据类型是用来创建变量的。经常变化的值称为变量。例:

int age;
char ch;
double weight;

变量的命名规则:
1.只能由数字,字母,下划线组成,且必须以字母或下划线开头。
2.不能包含特殊字符,如空格,连字符等。
3.不能使用语言的关键字,如int,char等。
4.应具有意义,有助于理解变量的含义和用途,
5.应简洁明了。
6.要区分大小写。
变量的初始化:在创建变量时就给一个值,就叫初始化。

int age=18;
char ch='w';
double weight=48.0;

变量的分类
全局变量:在大括号外部定义的变量就是全局变量。它的使用范围广,整个工程中使用都有办法。

#include <iostream>
using namespace std;
int age=18;   //全局变量
int main()
{
int global=2024;
cout<< age<<" "<<global<<endl;
return 0;}

若局部变量和全局变量同名,局部变量优先使用
全局与局部变量在初始化上有如下区别:
全局变量:通常在定义时就被初始化,如果没有明确指定初始值,通常会被初始化为0.
局部变量:通常不会自动初始化。需要在使用之前明确地赋值或初始化。若没有初始化,它们的值是未定义的。可能会导致不可预测的行为或运行错误。

常量

常量分为字面常量,#define定义的常量,const定义的常量。
字面常量

1.整型常量:100,-5,0可写成10进制,8进制,16进制。
10进制数字,如:6,17,22
8进制数字一般是数字0开头的,如:012,016
16进制数字,一般是0x开头的数字,如:0x123,0xFF
2.字符常量:‘a’
3.浮点型常量:3.14,1E6
#define定义的常量

#define 常量名 内容
#define M 100
#define PI 3.14159
#define CH 'x'

这里定义的M,CH,PI都是常量,可以直接使用,但不能被修改
用#define定义常量不关注类型,编译在处理时会直接替换,在出现变量名字的地方全部替换成变量的内容。
const定义变量
比#define定义变量更严谨。

const 类型 常量名字=常量值;
const double PI=3.14159;

在习惯上,这种变量的名字会写成大写,而普通变量的名字不会全大写,这样可以做一个区分。

算术操作符

+ - * / %

注:取模操作符的操作数只能是整型,不能是浮点型。否则会报错。
浮点数的除法:

float x=6/4;
cout<<x<<endl;  //1
float y=6.0/4;
cout<<y<<endl; //1.5

以上不同的原因在于整数除法是整除,只会返回整数部分,丢弃小数部分。
希望得到浮点数的结果,两个运算数中必须至少有一个浮点数,这时就会进行浮点数除法。
负数也支持取模,但结果的正负号由第一个运算数的正负号决定。
数值溢出:实际运算过程中存在加法操作导致数据范围超过当前数据类型规定的范围。在这里插入图片描述

类型转化

当不同类型的数据进行混合运算时,或者赋值时等号两边的类型不统一时,都会发生类型转换。涉及两类转换:整型提升和算术转换。
整型提升:表达式中的char和short类型会先转换成int类型再参与运算。
算术转换:表达式中出现下面的 任意两种类型的值进行计算时,要先将下面的类型转换成另一种才能计算。

long long
double
float
unsigned long int
long int 
unsigned int
int

这些转换都是隐式自动发生的。

#include <iostream>
using namespace std;
int main()
{
char a='a';
int b=10;
char c=a+b; //这里a会发生整型提升。
int c=10;
double d=3.14;
double e=c+d;  //c+d时会发生算数转换。
return 0;}

赋值时类型转换:当赋值操作符两端的数据类型不一致时,就需要类型转换(也是隐式自动发生的)。
1.float和double赋值给int,直接截断小数部分,保留整数部分。

int a=3.14;//a的值为3

较大转较小类型会发生截断,按照较小类型的长度,保留低位数据给较小的类型。
强制类型转换:

(类型名)表达式

如:

double d=3.14;
int a=(int)d;

自增自减:前置++:先+1,后使用
后置++:先使用,后+1

标签:初始化,变量,常量,int,double,C++,define,入门
From: https://blog.csdn.net/2401_88238436/article/details/144008299

相关文章

  • C++入门(1)
    名字空间#include<iostream>usingnamespacestd;intmain(){}1.usingnamespacestd;意思是:使⽤名字空间std(名字空间也叫命名空间)。2.在C++中,变量、函数和类都是⼤量存在的,这些变量、函数和类的名称如果都存在于全局作⽤域中,可能会导致很多冲突。使⽤名字空间的......
  • MybatisPlus入门(八)MybatisPlus-DQL编程控制(下)
    一、字段映射与表名映射数据库表和实体类名称一样自动关联,数据库表和实体类有部分情况不一样。问题一:表名与编码开发设计不同步,表名和实体类名称不一致。  解决办法:在模型类上方,使用@TableName注解,通过value属性,设置当前类对应的数据库表名称。  示例代......
  • c++程序设计基础实验4
    任务2:源代码:Gradecalc.hpp:#include<iostream>#include<vector>#include<string>#include<algorithm>#include<numeric>#include<iomanip>usingstd::vector;usingstd::string;usingstd::cin;usingstd::cout;using......
  • C++前置基础知识讲解
    C++前置基础知识讲解1.c++的特点c++是在c语言基础上添加了面向对象编程和泛型编程支持,继承了c语言的高效、简洁、快速和可移植性的传统。C++是面向对象编程的,C语言是面向过程编程的。1.1面向对象编程面向对象是把事物抽象成对象的概念。先定义类,在类里面准确地表示成需要处......
  • C++自动化测试:GTest 与 GitLab CI/CD 的完美融合
    在现代软件开发中,自动化测试是保证代码质量和稳定性的关键手段。对于C++项目而言,自动化测试尤为重要,它能有效捕捉代码中的潜在缺陷,提高代码的可维护性和可靠性。本文将重点介绍如何在C++项目中结合使用GoogleTest(GTest)和GitLabCI/CD,特别是通过提供详细的脚本示例,展示如何......
  • 【C++】继承(inheritance)
    引入假设我们有一个动物类classAnimal{public:intage;voideat(){std::cout<<"吃东西!"<<std::endl;}};又想写一个狗类,它也有年龄,也会吃,除此之外还有种类classDog{public:constchar*kind;intage;voideat(){......
  • 【C++】类(一):定义抽象数据类型
    类这部分内容对应于C++Primer第五版的第七章全部内容。原书当中的内容包括:7.1定义抽象数据类型;7.2访问控制与封装;7.3类的其它特性;7.4类的作用域;7.5构造函数再探;7.6类的静态成员;类的基本思想是数据抽象(dataabstraction)和封装(encapsulation)。数据抽象是一种依赖......
  • 实验四 c++
    任务一:task1_1.cpp:#include<iostream>usingstd::cout;usingstd::endl;//类A的定义classA{public:A(intx0,inty0);voiddisplay()const;private:intx,y;};A::A(intx0,inty0):x{x0},y{y0}{}voidA::display()const{......
  • MybatisPlus入门(七)MybatisPlus-DQL编程控制(上)
     一、查询条件设置查询条件如下图:  用户登录(eq匹配),代码示例:LambdaQueryWrapper<User>lqw=newLambdaQueryWrapper<User>();//等同于=lqw.eq(User::getName,"Jerry").eq(User::getPassword,"jerry");UserloginUser=userDao.selectOne(lqw);System.o......
  • MybatisPlus入门(五)MybatisPlus条件查询
    一、MybatisPlus条件查询MyBatisPlus将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合  方式一:按条件查询查询年龄小于18的用户,代码示例:@SpringBootTestclassMybatisplusDqlApplicationTests{@AutowiredprivateUserDaouserDao;......