一.回顾
1.1.1基准的c++源文件
c++源文件的扩展名是.cpp
c的源文件的扩展名是.c
Linux Shell 文件扩展名是unix
#include <iostream> //包含输出输入的头文件
using namespace std; # 包含cout,cin,endl等成员的空间
//单行注释
//程序的主函数
int main(){
cout<<"输出的文本内容"<< end;
return 0; //函数返回值,同时结束函数
}
1.2.2c++文件转换为可执行文件
一步到位:
g++ hello.cpp -o hello
编译是,可以不指定-o选项,默认输出为a.out,
可使用绝对路径/home/user/…/a.out来执行
四个步骤的编译
预处理
g++ -E hello.cpp -o hello.i编译
g++ -S hello.i -o hello.s汇编
g++ -c hello.s -o hello.o连接
g++ hello.o -o hello
二,c++数据类型
2.1 注释
注释的信息旨在编译中显示,不会保留在可执行文件中
指保留在源文件中,目的是为了帮助程序阅读者更好的理解功能程序
单行注释://
可以写在一行的开始位置,也可以写在某一个语句结束位置(;)以后
多行注释 😕 /
可以占多行(至少一行)解释一段代码的功能,
但注释中不能插入合法的语句块
2.2关键字
c++中的关键字是具有特定意义的,是编译器预定义。在定义变量的时候吧,不能用这些关键字作为变量名(标识)。
2.2.1数据类型相关
-
char 字符型
通常占用1字节,用于存储单个字符。
-
int 整形
通常占用4字节,表示相对较小的整数。
-
float 浮点型
通常占用4字节,用于表示带小数的数字。
-
double 双浮点型
通常占用8字节,用于表示更高精度的浮点数。
-
viod 无类型
常用于函数返回类型,表示该函数不返回任何值
- short 短整型
通常占用2字节,表示相对较小的整数。
- long 长整型
通常占用4或8字节(具体取决于平台),用于表示较大的整数。
- struct 结构体
用于将不同类型的数据组合在一起,形成一个新的数据类型。
- union 联合体
类似于结构体,但所有成员共享同一块内存空间,节省内存。
- signed 有符号型
可以表示正数和负数,通常用于整数类型。
- unsigned 无符号型
只能表示非负数,通常用于整数类型。
-
enum 枚举型
定义一组命名的整数常量,便于表示有限的选项。
2.2.2.存储特性相关
-
register 寄存器存储(cpu内部的)
提高了程序效率(加快数据的读和写)
static 静态储存(全局变量)
const 只读变量
volatile 易改变的,即告诉cpu每次使用vliatile变量时,重新去从内存中取
auto c++11标准是自动变量(确认是数据类型)
extern 声明变量或函数
2.2.3控制语句相关
if else while for do switch case default goto
continue break
2.3常量与变量
常量:即见即所得,不能修改的;如1,1.2,a,helllo,
变量:由数据类型和变量名称组成的,变量依据数据类型在
内存中分配空间,存放数据(或常量);如 int a=1;
a是变量,它的数据类型是Int,int 类型决定了呢欸村空间大小(4字节)
2.4整型常量与变量
2.4.1整型常量:
十进制的数据:1,2,3等
二进制的数据:0b开头的,只包含0和1的数,如0b101
八进制的数据:0,4,5,6,7等
十六进制的数据:以0x开头,包含0~9和a~f,其中a表示10,f表示15;如:0x146fa
2.4.2变量的定义与初始化
定义变量的格式:数据类型 变量名
定义整型变量x; in x;
变量定义以后,分配内存空间,内存空间大小有数据类型决定,int占4个字节。
常见的数据类型占内存空间大小如下
char 1B ,字符类型
short 2B 短整型,,是short int 的缩写
int 4B
long 32位占4B,64中8B
float 单精度浮点型 4B
double 双精度浮点型,32位中占4B,64位中占8B
查看变量的内存大小:sizeof(变量名)
2.4.3变量名的规则
变量名以字母,下划线_开头,中间可以是字母,数字和下划线_;另外变量名不能使用关键字(保留字);
变量名尽可能的见名思意
变量名是区分大小写的;
变量名的长度原则上没有限制(c/c++)
2.4.4.局部变量和全局变量
变量初始化:变量在定义时同时赋值,如int x=53;
变量先定义后赋值,不叫变量的初始化,如:
int x;
x =52;
变量定义时没有给予数据时,默认给定值,如果变量在全局范围上,则默认为0;如果变量在局部声明,会随值地初始化(不确定)。
全局变量:变量定义在main函数的外面
局部变量:在函数或者语句块内进行定义
2.4.5变量的声明
变量的声明时,不会进行初始化,只是声明,以便于程序(函数)先使用他,在执行到使用变量的程序之前,才需要定义或者初始化变量。
变量的声明,定义和使用有什么区别
变量的声明,只是声明,在函数中可以使用,但变量并没有分配内存空间。
变量的定义,分配内存空间且赋值(初始化值)
变量的使用,读(取数据,输出)和写(数据,赋值)
2.4.6从键盘读取数据
使用‘cin>>变量名’从键盘读取书记处并赋值给变量,默认情况下,键盘输入数据之后,回车则开始赋值给变量,如果读取多个变量,输入可以用多个空格来分割,或者多次(回车)换行。
如d8.cpp
#include <iostream> using namespace std; int main(){ cout << "请输入两个点坐标,格式如 x1 y1 x2 y2"<< endl; int x1,y1,x2,y2; // 同时定义多个变量 cin >>x1>>y1>>x2>>y2; cout<< "P1("<<x1<<","<< y1 <<")" << " P2(" << x2<<","<<y2<<")" <<endl; return 0; }
任务2.键盘获取两个int数据求最大值
#include <iostream>
using namespace std;
int main(){
cout<<"请输入两个数"<<endl;
int x,y
cin>>x>>y;
if(x<y){
cout<<"最大值为"<<y<<endl;
}
else
{
cout<<"最大值为"<<x<<endl;
}
return 0;
}
2.5字符类型
2.5.1字符char的说明和使用
c/c++字符类型 char,占一个字节,字的内容是ASCII表中有效的字符。
ASCII表:字符和数值存在一一对应的关系,共有128个,数值的范围0~127
常见的 ASCII字符和数值:
‘0’: 48
‘A’: 65
’ a’: 97

一个ASCII范围的字符,等同于他队形的数值,也可以理解为一个字符也一个整型数值。
如10.cpp
#include<iostream>
using namespace std;
int main (){
char c = 'a' ;//1b
int m=2; //4b
m +=c; //先将c转换为int 再和m进行计算
cout << "m="<<m<<endl;
//大字节 转小字节 需要强制转换【可能会出现丢失数据】
cout<< "m to char is"<<(char)m<<endl;
return 0;
}
2.5.2 键盘接收字符并转换大小写
如d12,如果输入的是小写字母,将其转换为大写并输出,繁殖则转换为小写并输出。
A-Z 65-90
a-z 79-122
a-A 32
#include<iostream>
using namespace std;
int main()
{
char ch; //默认'\0'==0
//cout<<(int)ch<<endl;
cout<<"请输入一个字符"<<endl;
cin>>ch;
if(ch>==65&&<==90){
cout<<"大写字母:"<<ch<<"转为小写字母:"(char)(ch+32)<<(int)ch<<endl;
}
else if(ch>=97&&ch<==122)
{
cout<<"小写字母:"<<ch<<(char)(ch-32)<<(int)ch<<endl;
}
return 0;
}
2.5.3字符常量和字符串
字符串:通过双引号将多个(至少一个)字符引起来,字符串是字符的一种序列。
如“ hello” ,“ a ” ,“ wwh”(单引号‘a’为字符常量)。
字符串的尾部,系统会自动添加一个\0转义0字符,来表示字符串结束。
如d13.cpp
#include <iostream>
#include <string>
using namespace std ;
int main (){
string strl="abcd\0good";
cout<<strl<<endl;
return 0;
}
在d13.cpp中比较string和char [] 内存空间使用情况
#include <string>
#include <iostream>
using namespace std;
int main(){
string str1="abc\0good";
cout << str1 << str1 << " " << sizeof(str1) << endl;
char str2[] = "disen666"; // 字符数组,实际上也是一个字符串
cout << "str2=" << str2 << endl;
char str3[] = {'d', 'i', 's', 'e', 'n'};
cout << "str3=" << str3 << endl;
cout << "str3的字节数:" << sizeof(str3) << endl; // 5B, 没算\0
string str4 = "a";
cout << "str4的字节数:" << sizeof(str4) << endl; // 32B 32*8 = 256位
char str5[] = "b"; // 自动添加\0
cout << "str5的字节数:" << sizeof(str5) << endl;
return 0;
}
1万+

被折叠的 条评论
为什么被折叠?



