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++ 中分号是结束符号,每个完整的句子都以;号结束。
- 语句块是一组使用大括号括起来的按逻辑连接的语句
- 单行注释://
- 多行注释:/* */
入门实例
#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)]
- 字符常量
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;
}
//---------------------
程序=算法+数据结构
- C++语句:说明语句、赋值语句、表达语句、过程控制语句。
- 过程控制语句又包括条件语句、循环语句、转义语句。
- switch 语句(switch statement)
- 分支为整数或者字符
- default分支
- case和break连用
- do-while循环用于重复程序的一部分几次(或多次)。如果迭代次数不固定,并且必须至少执行一次循环,建议使用do-while循环。
- goto语句也称为跳转语句。 它用于将控制转移到程序的其他部分。 它无条件跳转到指定的标签。它可用于从深层嵌套循环或switch case标签传输控制。
- 注释:/单行注释
- 注释多行:/* 多行注释 */
- 函数
- 函数分为两类:库函数和用户自定义函数
- 将参数传给函数的两种方式:值的调用或者通过引用的调用。在原始的调用中是不会被修改,在通过引用调用中会被修改。
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZTEAzCfJ-1599132609415)(https://ws1.sinaimg.cn/large/006tKfTcgy1g1n6kzyunnj314c0a0gm1.jpg)]
C++存储类
- 静态变量只初始化一次,直到程序结束。 它保留可在多个函数之间调用的值。静态变量由编译器提供的一个默认值:0。
- extern变量对所有程序都可见。 如果两个或多个文件共享相同的变量或函数,则使用它。
- 多维数字示例
数组
- 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;
}
实型(浮点型)
作用:用于表示小数
浮点型变量分为两种:
- 单精度float
- 双精度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 |