0
点赞
收藏
分享

微信扫一扫

Flutter解决macbook M芯片Android Studio中不显示IOS真机的问题

寒羽鹿 01-31 06:00 阅读 3

const修饰指针------常量指针。可以改指针指向,不可改指针指向的内存。举例说明

#include <iostream> // 包含标准输入输出流库
using namespace std; // 使用标准命名空间

int main()
{
    int a = 1; // 定义一个整数变量a,并初始化为1
    int b = 2; // 定义一个整数变量b,并初始化为2
    const int* p = &a; // 定义一个指向常量的指针p,并将其指向变量a的地址
    // *p = 20; // 不可以,语法错误。p指向的是常量,不能通过p修改它所指向的值
    // 但变量a本身可以被修改,例如:a = 20;
    // 指针p的指向也可以被修改,例如:p = &b;

    // 输出指针p的内容(即a的值)和指针p的地址
    cout << "*p" << '\t'; // 输出字符串"*p",表示指针p的内容
    cout << *p << endl;   // 输出指针p所指向的值(即a的值)
    cout << p << endl;    // 输出指针p的地址(即a的地址)

    // 输出变量a的内容和地址
    cout << "a" << '\t'; // 输出字符串"a",表示变量a的值
    cout << a << endl;   // 输出变量a的值
    cout << &a << endl;  // 输出变量a的地址

    // 修改指针p的指向,使其指向变量b的地址
    p = &b;

    // 输出指针p的内容(即b的值)和指针p的地址
    cout << "*p" << '\t'; // 输出字符串"*p",表示指针p的内容
    cout << *p << endl;   // 输出指针p所指向的值(即b的值)
    cout << p << endl;    // 输出指针p的地址(即b的地址)

    // 输出变量a和b的内容
    cout << "a" << '\t'; // 输出字符串"a",表示变量a的值
    cout << a << endl;   // 输出变量a的值
    cout << "b" << '\t'; // 输出字符串"b",表示变量b的值
    cout << b << endl;   // 输出变量b的值

    cin.get(); // 等待用户输入,防止程序直接退出
    return 0;  // 返回0,表示程序正常结束
}

const修饰常量------指针常量。不可以改指针指向,可以改指针指向的内存。举例说明

#include <iostream> // 包含标准输入输出流库
using namespace std; // 使用标准命名空间

int main()
{
    int a = 1; // 定义一个整数变量a,并初始化为1
    int b = 2; // 定义一个整数变量b,并初始化为2
    int* const p = &a; // 定义一个指针常量p,指向变量a的地址
                       // p的指向固定,不能更改(例如:p = &b; 是非法的)
                       // 但可以通过p修改它所指向的值(例如:*p = 20; 是合法的)

    // 输出指针p的内容(即a的值)和指针p的地址
    cout << "*p" << '\t'; // 输出字符串"*p",表示指针p的内容
    cout << *p << endl;   // 输出指针p所指向的值(即a的值)
    cout << p << endl;    // 输出指针p的地址(即a的地址)

    // 输出变量a的内容和地址
    cout << "a" << '\t'; // 输出字符串"a",表示变量a的值
    cout << a << endl;   // 输出变量a的值
    cout << &a << endl;  // 输出变量a的地址

    // 通过指针p修改a的值
    *p = 20; // 合法操作,因为p是一个指针常量,指向的内容可以被修改
             // 此时a的值被修改为20

    // 以下代码是非法的,因为p是一个指针常量,其指向不能被更改
    // p = &b; // 错误:不能更改指针常量的指向

    // 再次输出指针p的内容(即a的值)和指针p的地址
    cout << "*p" << '\t'; // 输出字符串"*p",表示指针p的内容
    cout << *p << endl;   // 输出指针p所指向的值(此时a的值已被修改为20)
    cout << p << endl;    // 输出指针p的地址(即a的地址)

    // 输出变量a和b的内容
    cout << "a" << '\t'; // 输出字符串"a",表示变量a的值
    cout << a << endl;   // 输出变量a的值(此时a的值为20)
    cout << "b" << '\t'; // 输出字符串"b",表示变量b的值
    cout << b << endl;   // 输出变量b的值(b的值未被修改,仍为2)

    cin.get(); // 等待用户输入,防止程序直接退出
    return 0;  // 返回0,表示程序正常结束
}

两个都修饰 const 指针数据类型 const 变量 不可以改指针指向,不可以改指针指向的内存。举例说明。

#include <iostream> // 包含标准输入输出流库
using namespace std; // 使用标准命名空间

int main()
{
    int a = 1; // 定义一个整数变量a,并初始化为1
    int b = 2; // 定义一个整数变量b,并初始化为2
    const int* const p = &a; // 定义一个指向常量的常量指针p,并将其指向变量a的地址
                             // 特点:
                             // 1. p指向的内容不能被修改(即不能通过*p修改a的值)。
                             // 2. p的指向也不能被修改(即不能写p = &b;)。

    // 输出指针p的内容(即a的值)和指针p的地址
    cout << "*p" << '\t'; // 输出字符串"*p",表示指针p的内容
    cout << *p << endl;   // 输出指针p所指向的值(即a的值)
    cout << p << endl;    // 输出指针p的地址(即a的地址)

    // 输出变量a的内容和地址
    cout << "a" << '\t'; // 输出字符串"a",表示变量a的值
    cout << a << endl;   // 输出变量a的值
    cout << &a << endl;  // 输出变量a的地址

    // 以下操作是非法的:
    // *p = 20; // 错误:p指向的是常量,不能通过*p修改a的值
    // p = &b;  // 错误:p是一个常量指针,其指向不能被更改

    // 再次输出指针p的内容和地址
    cout << "*p" << '\t'; // 输出字符串"*p",表示指针p的内容
    cout << *p << endl;   // 输出指针p所指向的值(仍然是a的值)
    cout << p << endl;    // 输出指针p的地址(仍然是a的地址)

    // 输出变量a和b的内容
    cout << "a" << '\t'; // 输出字符串"a",表示变量a的值
    cout << a << endl;   // 输出变量a的值
    cout << "b" << '\t'; // 输出字符串"b",表示变量b的值
    cout << b << endl;   // 输出变量b的值

    cin.get(); // 等待用户输入,防止程序直接退出
    return 0;  // 返回0,表示程序正常结束
}
举报

相关推荐

0 条评论