C++入门到精通(xcode IDE)

本文介绍了C++编程的基础,包括Xcode IDE的使用,C++与Swift的区别,C++的基本语法如变量、运算符、控制结构、函数、数组、指针、结构体和引用。此外,深入讲解了C++的核心概念,如内存分区、静态成员、构造与析构函数、多态、继承和多态。文章适合初学者和希望巩固C++基础知识的开发者阅读。
摘要由CSDN通过智能技术生成

Xcode

  • xcode是苹果的集成开发环境(IDE)。你使用Xcode来为苹果设备创建app,比如,iPad、iPhone、Apple Watch、Apple TV、Mac。在app的创建、测试、优化、发布到AppStore这整个开发流程中,Xcode提供了一套工具来方便你进行管理。
  • 支持C、C++、Objective-C、Swift等
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a1w94AhX-1599132609400)(https://i.loli.net/2020/08/31/MLwjQFCS8eJUPbV.jpg)]
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OBDhp8NH-1599132609401)(https://i.loli.net/2020/08/31/jfQ9Y3vXJG6LNSU.png)]
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8AC5EGfD-1599132609403)(https://i.loli.net/2020/08/31/qURa85usfIWDzt4.png)]

swift

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FEp4dPZx-1599132609406)(https://i.loli.net/2020/08/31/yA9DriUcHZ65ICj.png)]

区别联系

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S9DjA0Oq-1599132609409)(https://i.loli.net/2020/09/01/3INAsSQhj9Y5rdq.png)]

实例

/
//  main.cpp
//  00-hello_world
//
//  Created by YanErrol on 2020/9/1.
//  Copyright © 2020 YanErrol. All rights reserved.
//

#include <iostream>

int main(int argc, const char * argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";
    int  new_name=0;
    std::cout<<"请输入数据:";
    std::cin>>new_name;
    std::cout<<"输入的数据为:"<<new_name<<"\n";
    return 0;
}

C++基础编程

编译过程

  • 高级语言-> 词法解释器->解析为固定结构的数据-> 生成器 -> 生成低级语言
    1.IDE:集成开发平台:编辑 编译 调试 推荐VS2008
    2.www.afanihao.cn
    3.win10 cd /d 文件夹路径
  • c++是静态编程语言、编程式的、通用的大小写敏感的,不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
  • C++是一个中级语言,c++是c语言的超集合,任何合法的C都是合法的C++程序。
  • c++的文件扩展名,.cpp .cp .c
  • C++ 中分号是结束符号,每个完整的句子都以;号结束。
  • 语句块是一组使用大括号括起来的按逻辑连接的语句
    C++关键字
  • 单行注释://
  • 多行注释:/* */
    数据类型

入门实例

#include<iostream>
using namespace std;
int main()
{
    cout<< "hello,world"<<endl;
    return 0;
}
  • C++ 特性:封装、继承、多态、抽象
  • C++ 程序的源文件通常使用扩展名 .cpp、.cp 或 .c。
  • Xcode 目前可从 developer.apple.com/technologies/tools/ 上下载。
  • 在 C++ 中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。
  • 标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)
  • bool 所占的字节数:sizeof(bool)
  • char 所占的字节数:sizeof(char)
  • numeric_limits::max
  • numeric_limits::min
enum 枚举名{ 
     标识符[=整型常数], 
     标识符[=整型常数], 
... 
    标识符[=整型常数]
} 枚举变量;
  • 当您使用多个文件且只在其中一个文件中定义变量时(定义变量的文件在程序连接时是可用的),变量声明就显得非常有用。您可以使用 extern 关键字在任何地方声明一个变量。虽然您可以在 C++ 程序中多次声明一个变量,但变量只能在某个文件、函数或代码块中被定义一次。

编程实战

  • c++ 中小数表示: printf("%.1f\n",8.0/5.0)
  • 解释型语言:边编译边执行;编译型语言:编译完成后再执行
  • C++ 变量
    • 变量其实不过是程序可操作的存储区的名称。C++中每个变量指定类型,类型决定了变量存储的大小和布局。
    • 变量名字:必须是以字母和下划线开头。
    • extern关键字在任何地方声明变量。
  • 全局变量和局部变量的区别
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MW2MR7Y1-1599132609413)(https://i.loli.net/2019/09/05/hJxkUN4GPA2uILO.png)]
  • 字符常量
    • roCyzlLADHk9jKm.png

linux 下编译c++

g++ name.cpp
./a.out

** iostream 是标准的输入和输出流的标准头文件


//---------------------
// first.cpp
// Author:YanErrol
//--------------------

#include<iostream>
using namespace std;
int main(){
cout << "hello world\n";
return 0;
}
//---------------------

程序=算法+数据结构

  1. C++语句:说明语句、赋值语句、表达语句、过程控制语句。
    1. 过程控制语句又包括条件语句、循环语句、转义语句。
    2. switch 语句(switch statement)
      1. 分支为整数或者字符
      2. default分支
      3. case和break连用
      4. do-while循环用于重复程序的一部分几次(或多次)。如果迭代次数不固定,并且必须至少执行一次循环,建议使用do-while循环。
      5. goto语句也称为跳转语句。 它用于将控制转移到程序的其他部分。 它无条件跳转到指定的标签。它可用于从深层嵌套循环或switch case标签传输控制。
      6. 注释:/单行注释
      7. 注释多行:/* 多行注释 */
  2. 函数
    1. 函数分为两类:库函数和用户自定义函数
    2. 将参数传给函数的两种方式:值的调用或者通过引用的调用。在原始的调用中是不会被修改,在通过引用调用中会被修改。
    3. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZTEAzCfJ-1599132609415)(https://ws1.sinaimg.cn/large/006tKfTcgy1g1n6kzyunnj314c0a0gm1.jpg)]

C++存储类

  1. C++存储类
  2. 静态变量只初始化一次,直到程序结束。 它保留可在多个函数之间调用的值。静态变量由编译器提供的一个默认值:0。
  3. extern变量对所有程序都可见。 如果两个或多个文件共享相同的变量或函数,则使用它。
  4. 多维数字示例

数组

  • C++中声明一个数组,需要制定元素的类型和元素的数量。
    • type arrayName [ arraySize ];

变量

  • 数据类型 变量名=初始值;

常量

C++定义常量两种方式
#define 宏常量: #define 常量名 常量值
==通常在文件上方定义==,表示一个常量
const修饰的变量 const 数据类型 常量名 = 常量值
==通常在变量定义前加关键字const==,修饰该变量为常量,不可修改
//1、宏常量
#define day 7
int main() {
	cout << "一周里总共有 " << day << " 天" << endl;
	//day = 8;  //报错,宏常量不可以修改
	//2、const修饰变量
	const int month = 12;
	cout << "一年里总共有 " << month << " 个月份" << endl;
	//month = 24; //报错,常量是不可以修改的
	return 0;
}

关键字

**作用:**关键字是C++中预先保留的单词(标识符)

  • 在定义变量或者常量时候,不要用关键字

C++关键字如下:

asm do if return typedef
auto double inline short typeid
bool dynamic_cast int signed typename
break else long sizeof union
case enum mutable static unsigned
catch explicit namespace static_cast using
char export new struct virtual
class extern operator switch void
const false private template volatile
const_cast float protected this wchar_t
continue for public throw while
default friend register true
delete goto reinterpret_cast try

提示:在给变量或者常量起名称时候,不要用C++得关键字,否则会产生歧义。

识符命名规则

作用:C++规定给标识符(变量、常量)命名时,有一套自己的规则

  • 标识符不能是关键字
  • 标识符只能由字母、数字、下划线组成
  • 第一个字符必须为字母或下划线
  • 标识符中字母区分大小写

建议:给标识符命名时,争取做到见名知意的效果,方便自己和他人的阅读

数据类型

C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存

整型

作用:整型变量表示的是整数类型的数据

C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同

数据类型 占用空间 取值范围
short(短整型) 2字节 (-2^15 ~ 2^15-1)
int(整型) 4字节 (-2^31 ~ 2^31-1)
long(长整形) Windows为4字节,Linux为4字节(32位),8字节(64位) (-2^31 ~ 2^31-1)
long long(长长整形) 8字节 (-2^63 ~ 2^63-1)

sizeof关键字

**作用:**利用sizeof关键字可以统计数据类型所占内存大小
语法: sizeof( 数据类型 / 变量)
整型结论short < int <= long <= long long

int main() {

	cout << "short 类型所占内存空间为: " << sizeof(short) << endl;

	cout << "int 类型所占内存空间为: " << sizeof(int) << endl;

	cout << "long 类型所占内存空间为: " << sizeof(long) << endl;

	cout << "long long 类型所占内存空间为: " << sizeof(long long) << endl;

	system("pause");

	return 0;
}

实型(浮点型)

作用:用于表示小数

浮点型变量分为两种:

  1. 单精度float
  2. 双精度double

两者的区别在于表示的有效数字范围不同。

数据类型 占用空间 有效数字范围
float 4字节 7位有效数字
double 8字节 15~16位有效数字

示例:

int main() {

	float f1 = 3.14f;
	double d1 = 3.14;

	cout << f1 << endl;
	cout << d1<< endl;

	cout << "float  sizeof = " << sizeof(f1) << endl;
	cout << "double sizeof = " << sizeof(d1) << endl;

	//科学计数法
	float f2 = 3e2; // 3 * 10 ^ 2 
	cout << "f2 = " << f2 << endl;

	float f3 = 3e-2;  // 3 * 0.1 ^ 2
	cout << "f3 = " << f3 << endl;

	system("pause");

	return 0;
}

字符型

**作用:**字符型变量用于显示单个字符

语法:char ch = 'a';

注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号

注意2:单引号内只能有一个字符,不可以是字符串

  • C和C++中字符型变量只占用1个字节
  • 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元

示例:

int main() {
	
	char ch = 'a';
	cout << ch << endl;
	cout << sizeof(char) << endl;

	//ch = "abcde"; //错误,不可以用双引号
	//ch = 'abcde'; //错误,单引号内只能引用一个字符

	cout << (int)ch << endl;  //查看字符a对应的ASCII码
	ch = 97; //可以直接用ASCII给字符型变量赋值
	cout << ch << endl;

	system("pause");

	return 0;
}

ASCII码表格:

ASCII 控制字符 ASCII 字符 ASCII 字符 ASCII 字符
0 NUT 32 (space) 64 @ 96
1 SOH 33 ! 65 A 97 a
2 STX 34 " 66 B 98 b
3 ETX 35 # 67 C 99 c
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f
7 BEL 39 , 71 G 103 g
8 BS 40 ( 72 H 104 h
9 HT 41 ) 73 I 105 i
10 LF 42 * 74 J 106 j
11 VT 43 + 75 K 107 k
12 FF 44 , 76 L 108 l
13 CR 45 - 77 M 109 m
14 SO 46 . 78 N 110 n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI拉呱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值