C++ 第1章 基本数据与表达式

2024-09-07 04:48
文章标签 c++ 数据 基本 表达式

本文主要是介绍C++ 第1章 基本数据与表达式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C++语言源于C语言。C语言诞生于20世纪70年代,最初设计的目的是编写操作系统。
C++语言以函数为程序运行的基本单位,函数的一般形式:

 类型     函数名 (参数表)
{语句序列;}基本头文件:
#include <iostream> 使用名字空间,std标准库
using namespace std;
cin(标准输入)
cout (标准输出)

结构化方法编程:

#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{double r, girth, area;const double PI = 3.1415;cin >> r;girth = 2 * PI * r;area = PI * r * r;cout << "radius = " << r << endl;cout << "girth = " << girth <<endl;cout << "area = " << area <<endl;return 0;
}

面向对象方法编程:

#include <iostream>
using namespace std;
class Circle
{double radius;
public :void SetRadius( double r ){radius = r;}double GetRadius(){return radius;}double GetGirth(){return 2 * 3.1415 * radius;}double GetArea(){return 3.1415 * radius * radius;}};int main(int argc, char *argv[])
{Circle A, B;A.SetRadius(12.6);cout << "A.Radius = " << A.GetRadius() << endl;cout << "A.Girth = " << A.GetGirth() << endl;cout << "A.Area = "  << A.GetArea() << endl;B.SetRadius(8.26);cout << "B.Radius = " << B.GetRadius() << endl;cout << "B.Girth = " << B.GetGirth() << endl;cout << "B.Area = " << B.GetArea() << endl;return 0;
}//程序运行结果:
A.Radius = 12.6
A.Girth = 79.1658
A.Area = 498.745
B.Radius = 8.26
B.Girth = 51.8976
B.Area = 214.337

程序的编译执行:

C++的.cpp文件是文本文件。必须翻译成二进制代码才能在机器上运行。
翻译方式有两种:
1.解释方式:由“解释程序”对源程序逐个语句一边翻译,一边执行。执行速度慢,便于观察调试程序。
2.编译方式:由“编译程序”把源程序全部翻译成二进制代码。编译后的程序称为“目标程序”,可以反复高速运行。

一个C++语言源程序主要经过以下3个步骤:

1.编辑
2.编译
3.运行

程序错误可分为如下4种:

1.编译错误
2.连接错误
3.运行错误
4.逻辑错误

程序目标:

1.正确性
2.易读性
3.健壮性
4.运行高效率

变量定义

类型   标识符表;
例:int a, b c;double d;

访问变量:

1.名访问
变量 = 表达式;
a = a+b;2.地址访问
int a;
&a // 变量a的地址(指针)
*(&a) //a的地址所指的对象3.指针变量与间址访问
指针类型变量定义形式为:
类型  * 标识符;
int a = 8, b = 9;
int *pa, *pb;
pa = &a;
pb = &b;a,b的地址可以表示为:
&a 或 pa;
&b 或 pb;a,b的值可以表示为:
a 或 *(&a) 或 *(pa)
b 或 *(&b) 或 *(pb)当指针变量不指向任何内存单元时可以赋NULL值;
指针变量的关联类型可以为空类型void。
空类型指针变量可以指向任意数据类型的对象,但需要强制类型转换。
void *vp;
int a = 99;
int *ip;
vp = &a;
cout << *(int*)vp<<endl;
cout << *(char*)vp<<endl;
ip = (int*)vp;
cout << (*ip)<<endl;4.引用
C++允许为对象定义别名:
类型  &引用名 = 对象名;
int a;
int *pa;
int &ra = a; //ra是a的别名,只能在定义时初始化
pa = &a;  // pa指向a,这里“&”是取址符

常量和约束访问

1.标识常量
当用关键字const约束基本类型存储单元为只读时:(不可修改常量的值)
const 类型  常量标识符  =  常量表达式;
const double PI = 3.1415;
const int MIN = 50;2.指向常量的指针
用const约束指针对所指对象的访问时,这个指针称为指向常量的指针:(限制用指针间址访问对象方为“只读”)
const 类型 *指针   或    类型  const *指针3.指针常量
指针常量的意义是指针变量的值只能在定义的时候初始化,定义后不能修改,即不能改变指针变量的指向,但不影响所指对象的变问特性;
指针常量的定义形式为:
类型  *const 指针
int var1=88,var2=99;
int *const const_P1 = &var1;
const_P1 = &var2 //错误,不能修改指针常量
*const_P1 = var2; //可以修改指针常量所指对象的值4.指向常量的指针常量
指针本身和所指对象的值在定义后都限制为只读,不能写。
const 类型  *const 指针 或 类型 const *const 指针
int var = 23, other_var = 256;
const int MAX = 299;
const int * const double_P1 = &var;
const int * const double_P2 = &MAX;5.常引用
冠以const定义的引用,将约束对象用别名方式访问时为只读。
const 类型 & 引用名 = 对象名;
int a = 89;
const int & ra = a; 

表达式

1.运算符
C++运算符主要有:算术运算符   + - * / % ++ --关系运算符   > < == >= <= !=逻辑运算符   && || !位运算符    << >> ~ | ^ &赋值运算符   = 及扩展的复合运算符条件运算符   ? :逗号运算符   ,指针运算符   *  &求字节运算符  sizeof强制类型转换符  类型符分量运算符    . ->下标运算会    []其他         ()  ::  new  delete

条件表达式

操作数1 ? 操作数2 : 操作数3

类型转换

强制类型转换的一般形式:
(类型)(表达式)
(类型)表达式
类型 (表达式)

数据输入和输出

cin >>变量1>>变量2 … >>变量n;
cout <<表达式1<<表达式2… <<表达式n;

输出格式控制符

需要包含头文件iomainp

控制符功能
endl输出一个新行符,并清空流
ends输出一个字符串结束符,并清空流
dec用十进制数的形式输入或输出数值
hec用十六进制数的形式输入或输出数值
oct用八进制数的形式输入或输出数值
setfill(char c)设置填充符c
setprecision(int n)设置浮点数输出精度(包括小数点)
setw(int n)设置输出宽度

这篇关于C++ 第1章 基本数据与表达式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144098

相关文章

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域