C++基础入门

一,C++初识

#define宏常量,在文件上方定义
#define 常量名 常量值
const修饰的变量,通常在变量定义前关键字const,修饰该变量为常量,不可修改
const 数据类型 常量名 = 常量值

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

标识符命名规则:
~标识符不能使关键字
~标识符只能由字母,数字,下划线组成
~标识符第一个字符只能是字母或下划线
~标识符区分大小写

//固定格式
#include<iostream>
using namespace std;
int main()
{
	system("pause");
    return 0;
}

二,数据类型

语法:数据类型 变量名 = 变量初始值
数据类型存在的意义:给变量分配合适的内存
sizeof关键字:查看数据类型占用几个字节(占用字节数和运行空间不同有关)
整型
短整型short:2字节(15[-32768~32767])
整型int:4字节(31)
长整型long:linux系统下8字节(63)
长长整型long long:8字节(63)
实型(浮点数):小数默认是双精度,默认情况下输出一个小数,会显示出有效数字6位
单精度float:占用空间4字节,有效数字范围7位
双精度double:占用空间8字节,15-16位有效数字
tips:

float f1 = 53.1411111f;// 表示f接收
//科学计数法
float f2 = 3e2;//3*10^2
float f3 = 3e-2;//3*0.1^2

字符型:显示单个字符,占用1字节的内存
语法:char ch = ‘a’;
字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
tips:
创建字符型变量的时候要用’’
创建字符型变量的时候’'中只能放1个字符
查看对应ASCII编码强转成int:cout << (int)变量名 << endl;
A-65,a-97
转义字符(常用)
换行符 \n :cout << “hello world\n”;
反斜杠 \ :cout << “\”; 输出:
水平制表符 \t:cout << “hello\taaaa\n”; 输出:hello aaaa,空格的个数取决于前面字符多少,一共是8位.可以整齐的输出数据.
字符串型
//C风格字符串,注意:char 字符串名 [],等号后面要用双引号包含起来字符串

	char str[] = "hello world"; 
	cout << str << endl;
	//C++风格字符串,注意:用之前要加一个头文件#include <string>
	string str2 = "hello world";
	cout << str2 <<endl
布尔类型bool:占用1字节
	两个值:true--真(本质是1),false--假(本质是0)
	bool flag = true;
    cout << flag <<endl; //输出1
    flag = false;
    cout << flag <<endl;//输出0
数据的输入
	//1.整型
    int a = 0;
    cout << "请给变量a赋予新值:" << endl;
    cin >> a ;
    cout << "整型变量a=" << a << endl;

//2.浮点型

float f = 3.14f;
cout << "请给浮点型变量f赋值:" << endl;
cin >> f;
cout << "浮点型变量f=" << f << endl;

//3.字符

char ch2 = 'a';
cout << "请给字符型变量ch赋值:" << endl;
cin >> ch2;
cout << "字符变量f=" << ch2 << endl;

//4.字符串型

  string str1 = "helloworld";
    cout << "请给字符串str1赋值:" << str1 << endl;
    cin >> str1;
    cout << "字符串str1=" << str1 << endl;

//5.布尔类型

bool flag = false;
cout << “请给布尔flag赋值:” << endl;
cin >> flag; //输入非零的值都代表真
cout << “布尔类型flag=” << flag << endl;

三,运算符

算数运算符:+, -, *, /, %, ++, –
赋值运算符: =, +=, -=, =, /=, %= (a ?= 2; 等同于 a = a ? 2; 注:?代替-,+,/,,%)
比较运算符: ==, !=, <, >, <=, >= (假0,真1)
逻辑运算符: !, &&, ||

四,程序流程结构

循序结构:
选择结构:
单行格式:if(){}
多行格式:if(){}else{}
多条件的if语句:if(){}else if(){}…else{}
嵌套if语句:if(){if(){}}
选择结构案例:三只小猪称体重
三目运算符c = (a > b) ? a : b;
(a > b) ? a : b = c;
循环结构:

switch:
    switch(表达式){
        case 结果1 : 执行语句 ;
			break;
        case 结果2 : 执行语句 ; 
			break; //代表退出当前分支
		......
        default:执行语句; break;
    }
eg:电影打分(见github)

while(循环条件){循环语句}
eg:打印0-9,猜数字:随机生成数字,猜错比大小,才对输出你猜对了

// 随机生成数
// 添加随机数种子 作用利用当前系统时间生成随机数,防止每次随机数都一样
srand((unsigned int)time (NULL)); //要加time系统时间头文件 #include <ctime>
int num = rand()%100 +1; // rand()%100 + 1 生成 0+ 1~99 + 1 随机数
// cout << num << endl;
int val = 0;
cout << "请输入你猜测是数字:" << endl;
while(val !=  num){
    cin >> val;
    if(val > num){
        cout << "猜测过大" << endl;
    }else if(val < num){
        cout << "猜测过小" << endl;
    }else{
        cout << "恭喜你猜对了" << endl;
    }
}

do {}while(条件)
eg:输出0-9这10个数字,水仙花数
//do …while 与while的区别在于do … while 会先执行一次
for(起始表达式;条件表达式;末尾循环体){循环语句;}
eg:输出0-9,100以内敲7
嵌套循环for(;😉{for(;😉{}}
eg:打印正方体星星,乘法口诀
for(int i = 0;i<=10;i++){
for(int j = 0;j<=10;j++){
cout << "* ";//不换行
}
cout << endl; //换行
}

跳转语句
break:出现在switch,出现在循环语句中,出现在嵌套语句中跳出循环
countinue:跳过本次循环尚未执行的语句,执行下一条语句
goto:无条件的跳转代码 语法:goto 标记;
cout << “1,XXX” << endl;
goto FLAG;
cout << “2,XXX” << endl;
cout << “3,XXX” << endl;
FLAG:
cout << “4,XXX” << endl;
输出: 1,XXX
2,XXX

五,数组

特点:数组中的每个元素都是相同的数据类型,是有连续的内存位置组成的
三种定义方式:数据类型 数组名[数组长度];
			数据类型 数组名[数组长度] = {值1,值2....}
			数据类型 数组名[] = {值1,值2...}
数组名的用途:可以统计整个数组在内存中的长度,可以获取数组在内存中的首地址
sizeof(arr[0])//a[0]的长度
siezeof(arr)//arr的长度
sizeof(arr)/sizeof(arr[0])//数组的个数
cout << (int)arr << endl; //查看首地址
cout << (int)&arr[0] << endl;//查看第一个元素的地址,注:强转int是否报错分编译器
cout << (int)&arr[1] << endl;//查看第二个元素的地址
eg:5只小猪的体重,元素逆置,冒泡排序

二维数组:定义的四种方式
数据类型 数组名[行数][列数];
数据类型 数组名[行数][列数] = { {数据1,数据2},{数据3,数据4}};//可读性最高
数据类型 数组名[行数][列数] = { 数据1,数据2,数据3,数据4};
数据类型 数组名[][列数] = { 数据1,数据2,数据3,数据4};
二维数组名称用途
//查看占用内存空间大小
cout << “二维数组大小:” << sizeof(arr) << endl;
cout << “二维数组一行大小:” << sizeof(arr[0]) << endl;
cout << “二维数组元素大小:” << sizeof(arr[0][0]) << endl;
cout << “二维数组的行数:” << sizeof(arr)/sizeof(arr[0]) << endl;
cout << “二维数组的列数:” << sizeof(arr[0])/sizeof(arr[0][0]) << endl;
//查看二维数组的首地址
cout << “二维数组首地址:” << arr << endl;
cout << “二维数组第一行首地址” << arr[0] << endl;
cout << “二维数组第二行首地址” << arr[1] << endl;
案例:考试成绩统计,输出同学的总成绩.

六,函数

作用:将一段经常使用的代码封装起来,减少重复代码
定义:返回值类型,函数名,参数列表,函数体语句,return表达式
返回值类型 函数名 (参数列表){
	函数体语句
	return表达式
}
值传递,就是函数调用时实参将数值传入给形参
值传递,如果形参发生,并不会影响实参
函数样式4种
1.无参无返
2.有参无返
3.无参有返
4.有参有返

七,指针

八,结构题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值