C++一些基本内容

这是黑马程序员c++笔记的一些基本内容

一些联系的代码已经发送到github上面了

我的github链接:huozhijun/-: c++面向对象的笔记与一些c++联系 (github.com)

希望对你有帮助,欢迎讨论!

#include<iostream>
using namespace std;
#define Day 7
//上面定义过的下面不可以修改 不然造成Bug
//常量:作用是用于记录程序中不可更改的数据
//宏常量: #define 常量名 常量值
//const修饰的变量 const 数据类型 常量名 = 常量值


//1.单行注释
//2.多行注释

/*
两个中间所有内容都是注释
main()程序入口 有且只有一个 
*/

int main()
{
    //变量创建的语法:数据类型 变量名称 = 变量初始值
    //给一段指定的内存空间取值,方便操作这段内存

    int a = 10;

    const int month = 12;//const修饰的变量也为厂里
    cout << "一年有" << month << "个月份" << endl;
    
    cout << "a = " << a << endl;

    cout << "一周总共有:" << Day << "天" << endl;

    cout << "hello world" << endl;//是endL 小写的l 不是123的1!!
    
    cout << "short类型所占的内存空间为:" << sizeof(short) << endl;

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

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

    system("pause");

    return 0;
}
 
//标识符的命名规则
//1.标识符不能是关键字
//2.标识符只能由字母、数字和下划线组成
//3.第一个字符必须为字母或下划线
//4.标识符中字母区分大小写

//二、数据类型
//2.1整型
//2.2sizeof关键字
//sizeof:统计数据类型所占内存大小
//sizeof(数据类型/变量)
//整型:short(2) int(4) long(4)  //longlong(8)     
//2.3实型(浮点型)
//1.单精度float   4字节    7位有效数字
//2.双精度double    8字节    15~16位有效数字

//2.4字符型 
//char ch = 'a';
//1.字符使用单引号;2.单引号里面只有一个字符
//字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入储存单元

2.7布尔类型
布尔类型作用:真 TRUE 1  OR 假 FALSE 0
其占有==一个字节==的大小


```
int main()
 {
     bool flag = true;//true代表真
     cout << flag << endl;//结果是1
     
 }
```
2.8数据的输入
作用:用于从键盘获取数据
关键字;cin
语法:cin >> 变量

``
int main()
{
    //1.整型
    int a = 0;
    cout<<"请给整型变量a赋值:"<< a << endl;
    cin >> a:
    cout<<"整型变量a = "<< a << endl;
}``

for循环语句
作用:
语法:

`返回值类型 函数名(参数列表)
{
    函数体语句
    return 表达式//跟返回值类型挂钩
}`
1.返回值类型 int
2.函数名 add
3.参数列表 (int num1,int num2)
4.函数体语句 sum = num1+num2;
5.return表达式 return sum;

#include<iostream>
using namespace std;


int add(int num1, int num2)//num1,num2形参
{
    int sum = num1 + num2;
    return sum;

}

//值传递
//定义函数,实现两个数字进行交换

//如果函数并不需要返回值,声明的对象可以写void
void swap(int num1, int num2)
{
    cout << "交换前:" << endl;
    cout << "num1=" << num1 << endl;
    cout << "num2=" << num2 << endl;

    int temp = num1;
    num1 = num2;
    num2 = temp;

    cout << "交换后:" << endl;
    cout << "num1=" << num1 << endl;
    cout << "num2=" << num2 << endl;
    return;//返回值不需要的时候,可以不写return
}
int main()
{
    int a = 10;//a,b实参
    int b = 20;
    swap(a, b);


    system("pause");
    return 0;
}

形参改变不影响实参
6.5函数的常见样式
1.无参无返
2.有参无返
3.无参有返
4.有参有返

函数的分文件编写
作用:让代码结构更加清晰
函数份文件编写一般有4个步骤
1.创建后缀名称为.h的头文件
2.创建后缀名为.cpp的源文件
3.在头文件中写函数的声明
4.在源文件中写函数的定义


7.指针————噩梦开始的地方
7.1指针的基本概念
作用:指针可以通过指针间接访问内存===记录地址编号==
内存编号从0开始,一般用16进制的数字表示
可以利用指针变量保存地址

7.2指针变量的定义和使用
指针变量定义语法:数据类型*变量名;
#include<iostream>
using namespace std;

int main()
{
    //1.定义指针
    int a = 10;
    //指针定义的语法:数据类型*指针变量名;
    int* p ;
    //让指针记录变量a的地址
    p = &a;
    cout << "a的地址为:" << &a << endl;
    cout << "指针p为" << p << endl;


    //2.使用指针
    //可以通过解引用的方式来找到指针指向的内存,可以访问+修改
    //* 指针变量名 = 找到指针指向的内存中的数据
    *p = 1000;
    cout << "a为:" << a << endl;
    cout << "*p为:" << *p << endl;
 
    system("pause");
    return 0;
}

7.3指针所占内存空间
指针也是一种数据类型呢!它占有多少空间呢?
答案是不同的,跟你的操作系统有关!

#include<iostream>
using namespace std;

int main()
{
    //1.定义指针
    int a = 10;
    //指针定义的语法:数据类型*指针变量名;
    int* p ;
    //让指针记录变量a的地址
    p = &a;
    cout << "a的地址为:" << &a << endl;
    cout << "指针p为" << p << endl;


    //2.使用指针
    //可以通过解引用的方式来找到指针指向的内存,可以访问+修改
    //* 指针变量名 = 找到指针指向的内存中的数据
    *p = 1000;
    cout << "a为:" << a << endl;
    cout << "*p为:" << *p << endl;
 
    cout << "————————" << endl;
    //3.指针占用的内存空间
    cout << *p << endl;
    cout << "sizeof(int*)=" << sizeof(int*) << endl;
    cout << "sizeof(int*)=" << sizeof(p) << endl;
    cout << "sizeof(float*)=" << sizeof(float*) << endl;
    cout << "sizeof(double*)=" << sizeof(double*) << endl;
    cout << "sizeof(char*)=" << sizeof(char*) << endl;
    //结论:在32位操作系统下,指针是占4个字节空间大小,不管是什么数据类型
    //在64为操作系统下,指针是占有8个字节空间大小,不管是什么数据类型

    system("pause");
    return 0;
}

7.4空指针和野指针
空指针:指针变量指向==内存中编号为0==的空间
用途:初始化指针变量
注意:空指针指向的内存是==不可以访问==的
0-255是系统占用的,不然会出错。

野指针:指针变量指向非法的内存空间
是一种错误,避免出现野指针
int * p =(int *)0x1100;

7.5const修饰指针:
const修饰指针有三种情况:
1.const修饰指针————常量指针
特点:指针的指向可以改(可以改变指向哪一个内存
但是指针指向的值不可以修改(不可以修改那个内存里面存储的东西
const int * p = &a;
常量 指针p
const离*p近 说明*p不可以修改

修改方式:
1.*p = 20;
错误,指针指向的值不可以修改
2.p = *b;
正确,指针指向可以修改

2.const修饰常量————指针常量
int *const p = &a;
指针 常量p
const 离p近,说明p不可以修改

特点:指针的指向不可以修改,但是指针指向的值可以修改
跟上一个相反

3.const即修饰指针,又修饰常量
那这两个都不嫩改

7.6指针和数组
7.7指针和函数
7.8指针的应用 

8.结构体
8.1结构体基本概念
结构体属于用户==自定义的数据类型==,允许用户存储不同的数据类型

8.2结构体定义和使用
语法:struct 结构体名 {结构体成员列表}
通过结构体创建变量的方式有三种:
1. struct 结构体名 变量名
2. struct 结构体名 变量名={成员1值,成员2值...}
3.定义结构体时顺便创建变量

#include<iostream>
using namespace std;
#include<string>
//为了下面能够使得s1.name正常打印

//int arr[10] = {1,2,3,4,5,6,7,8,9,10};\

//1.创建学生数据类型:学生包括(姓名,年龄,分数)
//自定义数据类型,一些类型的集合
struct Student
{
    //成员列表

    //姓名
    string name;
    //年龄
    int age;
    //考试分数
    int score;
} s3;//2.3 顺便创建结构体变量
//2.通过学生类型创建出具体的学生

//2.1 struct Student s1
//2.2 struct Student s2={...}
//2.3 在定义结构体时顺便创建结构体变量

int main()
{
    //2.1 struct Student s1
    //同时struct关键字可以省略
    struct Student s1;
    //给s1属性赋值,通过.访问结构体变量中的属性
    s1.name = "张三";
    s1.age = 18;
    s1.score = 10;

    cout << "姓名" << s1.name << "年龄:" << s1.age << "分数" << s1.score << endl;

    //2.2 struct Student s2={...}
    struct Student s2 = { "李四",19,80 };
    cout << "姓名" << s2.name << "年龄:" << s2.age << "分数" << s2.score << endl;


    //2.3 在定义结构体时顺便创建结构体变量

    s3.name = "小红";
    s3.age = 20;
    s3.score = 100;
    cout << "姓名" << s3.name << "年龄:" << s3.age << "分数" << s3.score << endl;

    system("pause");
    return 0;


}

总结:
1.定义时候的struct不可以省略
2.创建结构体时,关键字struct可以省略
3.结构体变量利用操作符"."访问成员

8.3 结构体数组
作用:把自定义的结构体放入数组中方便维护
语法:struct 结构体名 数组名[元素个数]={{},{},...{}}

在类的定义中,可以用 private、public 和 protected 三种关键字来指定成员可被访问的范围。

private:用来指定私有成员。一个类的私有成员,不论是成员变量还是成员函数,都只能在该类的成员函数内部才能被访问。

public:用来指定公有成员。一个类的公有成员在任何地方都可以被访问。

protected:用来指定保护成员。这需要等介绍“继承”之后再解释。

三种关键字出现的次数和先后次序都没有限制。成员变量的可访问范围由离它前面最近的那个访问范围说明符决定。

如果某个成员前面没有访问范围说明符,则对 class 来说,该成员默认地被认为是私有成员;对 struct 来说,该成员默认地被认为是公有成员。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值