C++学习笔记(一)

本文详细介绍了C++编程的初步概念,包括基本语法、变量和常量、数据类型(如整型、浮点型、字符型和布尔型)、运算符、程序流程结构(if-else、三目运算符、switch、循环结构)、数组和冒泡排序,以及二维数组的使用。
摘要由CSDN通过智能技术生成

一.C++初识

1.第一个程序

#include<iostream>
using namespace std;
int main()
{
    cout <<"hello world"<<endl;	//endl作用换行
    system("pause");
    return 0;
}

2.注释

单行注释://

多行注释:/* */

3.变量(给一段指定内存空间起名,方便操作这段内存)

数据类型+变量名=变量初始值 eg:int a=10

4.常量(记录不可更改的数据)

(1)宏定义#define eg:#define a 10

(2)const修饰的变量 eg:const int a=10

#include<iostream>
using namespace std;
#define day 7	//常量不可修改,修改会报错
int main()
{
    cout <<"one week have"<<day<<"day"<<endl;
    const int month=12;
    cout <<"one month have "<<month<<" month"<<endl;
    system("pause");
    return 0;
}

5.关键字:不可用作常量名或变量名,比如 int, long, auto等

6.标识符命名规则

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

二.数据类型

数据类型存在的意义就是给变量分配合适的内存空间

1.整形(表示整数类型的数据)

int(整形):4字节 short(短整型):2字节 long(长整型):4字节 long long

2.sizeof关键字

利用sizeof统计数据类型所占内存大小,sizeof(数据类型/变量)

#include<iostream>
using namespace std;
int main(){
    short num=10;
    cout<<"int所占内存为 "<<sizeof(int)<<endl;
    cout<<sizeof(num)<<endl;
    return 0;
}

3.浮点型(表示小数)

单精度float:4字节 双精度double:8字节

科学计数法:3e2(表示3*10^2)

4.字符型char

char ch='a';//显示字符变量要用单引号括起来,单引号内只能有一个字符

字符型变量只占用一个字节

#include<iostream>
using namespace std;
int main(){
    char ch='a';
    cout<<ch<<endl;
    cout<< sizeof(ch)<<endl;
    cout<< int(ch)<<endl;//强制转换为整型
    return 0;
}

5.转义字符(用于表示一些不能显示出来的ASCII字符)

#include<iostream>
using namespace std;
int main()
{
    cout <<"hello world\n";
    cout <<"\\"<<endl;
    cout <<"hello\tworld"<<endl;
    system("pause");
    return 0;
}

6.字符串型(用于表示一串字符)

c语言风格:char 变量名[ ]="字符串值"

c++风格:string 变量名="字符串值"

#include<iostream>
using namespace std;
#include<string>//包含这个才能使用c++风格字符串
int main()
{
    char str1[]="hello";//c语言风格
    cout <<str1<<endl;
    string str2="world";//c++风格
    cout <<str2<<endl;
    return 0;
}

7.布尔类型bool

true(真本质为1),false(假本质为0),占一个字节大小

bool flag = true; cout<<flag<<endl;//输出1

布尔类型非0的数值都代表1,只有数值为0输出才为0

8.数据输入cin

cin >> 变量

#include<iostream>
using namespace std;

int main(){
    int a;
    cout<<"result of a"<<endl;
    cin>>a;
    cout<<"result is "<<a<<endl;
    return 0;
}

三.运算符

1.算数运算符(用于处理四则运算)

前置递增/递减:先自增/减,后取值 后置递增/递减:先取原值,后自增/减

2.赋值运算符

3.比较运算符(比较表达式,返回一个真值或假值)

cout << ( a == b ) <<endl;//用括号括起来表示优先级

4.逻辑运算符

与:&& 若a和b都为真,则结果为真,否则为假

或:|| 若a和b有一个为真,则为真,否则为假

非:! 若a为真,!a则为假

四.程序流程结构

1.选择结构

(1)if语句

if(条件1) {条件1满足后执行语句} //if条件后不加分号

else if(条件2) {条件2满足执行语句}

else(条件1、2不满足) {条件1、2不满足执行语句}

还可在if语句能嵌套一个if语句(嵌套if语句)

#include<iostream>
using namespace std;

int main(){
    int score;
    cout<<"input socre"<<endl;
    cin>>score;
    cout<<"score is "<<score<<endl;
    if(score>600)
    {
        cout<<"you are success"<<endl;
    }
    else if(score<600&&score>500)
    {
        cout<<"you are good"<<endl;
    }
    else
        cout<<"sorry"<<endl;
    return 0;
}

(2)三目运算符

表达式1?表达式2:表达式3 //若表达式1为真,则执行表达式2,否则执行表达式3

(3)switch语句

#include<iostream>
using namespace std;

int main(){
    int a;
    cin>>a;
    switch(a){
        case 100:
            cout<<"good"<<endl;break;
        case 50:
            cout<<"just so so"<<endl;break;
        default:
            cout<<"sorry"<<endl;break;
    }
    return 0;
}

2.循环结构

(1)while循环

while(条件) {执行} //括号里面的条件成立为1时执行接下来的语句;循环要避免死循环

#include<iostream>
using namespace std;
#include<ctime>

int main(){
    srand((unsigned int)time(NULL));
    int num=rand()%101;//生成0~100的随机数
    int input1;
    int n=1;
    while(n<=5){
        cin>>input1;
        if(input1>num)
            cout<<"big"<<endl;
        else if(input1<num)
            cout<<"small"<<endl;
        else{
            cout<<"you are right"<<endl;
            break;
            }
        n++;
        }
    return 0;
}

(2)do while循环

do{语句}while(条件) //先执行do内的语句再判断,判断正确后输出

#include<iostream>
using namespace std;
int main(){
    int num=100;
    do{
        int a=num/100;
        int b=num%100/10;
        int c=num%10;
        if(num==a*a*a+b*b*b+c*c*c){
            cout<<num<<endl;}
        num++;
    }while(num<1000);
        return 0;
}

(3)for循环

for( 起始表达式 ; 条件表达式 ; 末尾循环体 ) { 执行语句 }

#include<iostream>
using namespace std;
int main(){
    for(int i=1;i<=100;i++){
        int a=i/10;
        int b=i%10;
        int c=i%7;
        if(a==7||b==7||c==0)
            cout<<i<<endl;
    }
    return 0;
}

(4) 嵌套循环

#include<iostream>
using namespace std;
int main(){
    int i,j;
    for(i=1;i<10;i++){	//外层循环
        for(j=1;j<=i;j++)	//内层循环
            cout<<j<<"x"<<i<<"="<<j*i<<"\t";
        cout<<"\n";
    }
    return 0;
}

3.跳转语句

(1)break语句(用于跳出选择结构或循环结构)

使用时机:switch语句中终止case;跳出当前循环语句;嵌套循环跳出最近内层循环。

(2)continue语句

执行到continue,不再执行接下来语句,之间进行下一次循环

(3)goto语句(少用,以免造成混乱)

goto 标记;

...

标记:...

五.数组

1.数组:即一个集合,存放相同数据类型的元素,数组是由连续的内存位置组成的

2.数据类型 数组名[数组长度]={值1,值2....}

3.可以通过下标和指针间接访问数组中的元素,例如arr[1]*arr+1都是表示数组arr的第二个元素

4.若在初始化数组的时候定义了数组长度但未全部填写完数组内所有元素,会用0填补剩下元素;若未定义数组长度,则数组长度会根据数组内元素个数来自动定义

5.数组名的作用:

(1)可以统计整个数组在内存中的长度,例如sizeof(arr)

(2)可以获取数组在内存中的首地址,数组名表示的是数组内第一个元素在内存中的地址

注:数组名是一个常量,不可以进行赋值操作

#include<iostream>
using namespace std;
int main(){
    int arr[5];
    for(int j=0;j<5;j++)
        cin>>arr[j];
    int start=0;
    int end=sizeof(arr)/sizeof(arr[0])-1;
    while(start<end)
        {
            int temp=arr[start];
            arr[start]=arr[end];
            arr[end]=temp;
            start++;	end--;
        }
    end=sizeof(arr)/sizeof(arr[0])-1;
    for(int i=0;i<=end;i++)
        cout<<arr[i]<<endl;
    return 0;
}

6.冒泡排序

比较相邻元素,如果第一个元素比第二个人大,则二者交换,对每一对相邻元素做相同工作,执行完毕后,找到第一个最大值,重复,每次比较次数-1,直到结束

#include<iostream>
using namespace std;
int main(){
    int arr[6]={5,3,2,6,7,9};
    int temp;
    for(int i=0;i<5;i++)
        for(int j=0;j<5-i;j++)
            if(arr[j]>arr[j+1])
            {
                temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
    for(int n=0;n<6;n++)
        cout<<arr[n];
    return 0;
}

7.二维数组

数据类型 数组名[行数][列数]={{数据1,数据2},{数据3}{数据4}}

(1)二维数组中的行数可以省略,列数不可省略,初始化后行数会自动定义

(2)二维数组的数组名可用来查看数组所占内存空间( sizeof(arr)查看第一个所占内存,sizeof(arr[0])可以查看第一列所占内存);也可以用来查看数组的首地址(arr查看首地址,arr[0]查看第一行首地址)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值