当前位置: 首页 > wzjs >正文

制作企业网站是免费的吗网站ftp地址查询

制作企业网站是免费的吗,网站ftp地址查询,seo优化推广是什么意思,宁国网站开发目录 一。C 中的 const 知识点详解1. 基本用法1.1) 定义常量1.2) 指针与 const 2. 函数中的 const2.1)const 参数2.2)const 成员函数 3. 类中的 const3.1)const 成员变量3.2)const 对象 4. const 返回值5. …

目录

  • 一。C++ 中的 const 知识点详解
    • 1. 基本用法
      • 1.1) 定义常量
      • 1.2) 指针与 const
    • 2. 函数中的 const
      • 2.1)const 参数
      • 2.2)const 成员函数
    • 3. 类中的 const
      • 3.1)const 成员变量
      • 3.2)const 对象
    • 4. const 返回值
    • 5. constexpr (C++11 引入)
    • 6. const 重载
    • 7. mutable 关键字
    • 8. const 引用与临时对象
    • 9. const 转换
    • 10. const 正确性的好处
    • 常见面试题
  • 二. C 语言中 const 的主要知识点
    • 1. 基本用法
      • 1.1)定义常量
      • 1.2)指针与 const
    • 2. 函数参数中的 const
    • 3. const 返回值
    • 4. 数组与 const
    • 5. 结构体与 const
    • 6. const 转换
    • 7. const 正确性的好处
    • 注意事项
    • 示例代码

一。C++ 中的 const 知识点详解

C++ 中的 const 知识点详解
const 是 C++ 中一个重要的关键字,用于定义常量或指定不可修改的对象。以下是关于 const 的全面知识点总结:

1. 基本用法

1.1) 定义常量

const int MAX_VALUE = 100;  // 常量,初始化后不可修改
// MAX_VALUE = 200;  // 错误:不能修改常量

1.2) 指针与 const

const int* ptr1;       // 指向常量对象的指针(指针指向的内容不可变)
int const* ptr2;       // 同上
int* const ptr3;       // 常量指针(指针本身不可变,但指向的内容可变)
const int* const ptr4; // 指向常量对象的常量指针(指针和内容都不可变)

2. 函数中的 const

2.1)const 参数

void print(const std::string& str) {// str 不能被修改std::cout << str << std::endl;
}

2.2)const 成员函数

class MyClass {
public:int getValue() const {  // 常量成员函数,不能修改成员变量return value_;}void setValue(int v) {  // 非常量成员函数value_ = v;}
private:int value_;
};

3. 类中的 const

3.1)const 成员变量

class MyClass {
public:MyClass(int v) : value_(v) {}  // 必须在初始化列表中初始化
private:const int value_;
};

3.2)const 对象

const MyClass obj(10);
// obj.setValue(20);  // 错误:不能调用非常量成员函数
int val = obj.getValue();  // 可以调用常量成员函数

4. const 返回值

const int* getPointer() {static int value = 42;return &value;
}
// 防止返回的指针被用于修改值

5. constexpr (C++11 引入)

constexpr int square(int x) {return x * x;
}
constexpr int size = square(10);  // 编译时常量

6. const 重载

void process(int& val) { /* ... */ }
void process(const int& val) { /* ... */ }int getValue() const {  // 常量成员函数,不能修改成员变量return value_;
}
void setValue() {  // 非常量成员函数value_ = 10;
}

7. mutable 关键字

class MyClass {
public:void doSomething() const {count_++;  // mutable 成员可以在常量对象中被修改}
private:mutable int count_ = 0;
};

8. const 引用与临时对象

const std::string& getString() {return "Hello";  // 绑定到临时对象是安全的
}

9. const 转换

void print(const std::string& s);std::string str = "test";
print(str);       // 正确:非常量可以转为常量
print("test");    // 正确:字符串字面量转为 const char*

10. const 正确性的好处

提高代码安全性:防止意外修改
明确编程意图
允许函数接受常量和非常量参数
优化机会:编译器可能进行更好的优化

常见面试题

1.const int*, int const* 和 int* const 的区别?
2. 如何在常量成员函数中修改成员变量?

mutable

3.为什么成员函数要有const 重载?

通过 const 重载,可以为一个类提供两种接口:一种用于修改对象,另一种用于只读访问。

4.const 和 constexpr 有什么区别?

const
表示“不可修改”,适用于运行时逻辑,防止意外修改对象或变量。
constexpr
表示“编译期常量”,适用于需要编译期优化的场景(如数组大小、模板参数),要求值必须在编译期确定。

二. C 语言中 const 的主要知识点

在 C 语言中,const 关键字用于定义常量或指定不可修改的对象。以下是关于 C 语言中 const 的主要知识点总结:

1. 基本用法

1.1)定义常量

const int MAX_VALUE = 100;  // 常量,初始化后不可修改
// MAX_VALUE = 200;  // 错误:不能修改常量

1.2)指针与 const

const int* ptr1;       // 指向常量对象的指针(指针指向的内容不可变)
int const* ptr2;       // 同上
int* const ptr3;       // 常量指针(指针本身不可变,但指向的内容可变)
const int* const ptr4; // 指向常量对象的常量指针(指针和内容都不可变)

2. 函数参数中的 const

void print(const char* str) {// str 不能被修改printf("%s\n", str);
}

3. const 返回值

const int* getPointer() {static int value = 42;return &value;
}
// 防止返回的指针被用于修改值

4. 数组与 const

const int arr[] = {1, 2, 3};  // 常量数组,内容不可修改
// arr[0] = 4;  // 错误:不能修改常量数组元素

5. 结构体与 const

5.1const 结构体成员

struct Point {const int x;const int y;
};
// 必须在初始化时赋值
struct Point p = {.x = 1, .y = 2};

5.2const 结构体变量

struct Point p = {1, 2};
const struct Point cp = p;
// cp.x = 3;  // 错误:不能修改常量结构体成员

6. const 转换

void print(const char* s);char str[] = "test";
print(str);       // 正确:非常量可以转为常量
print("test");    // 正确:字符串字面量转为 const char*

7. const 正确性的好处

提高代码安全性:防止意外修改
明确编程意图
允许函数接受常量和非常量参数
优化机会:编译器可能进行更好的优化

注意事项

  • C 语言中的 const 变量默认具有外部链接性,除非显式声明为 static。
  • 在 C 语言中,const 变量并不是真正的常量表达式,不能用于数组大小声明等需要常量表达式的场合。
  • C 语言中的 const 变量可以通过指针间接修改(如果指针不是 const 限定的),这被认为是一个设计缺陷。

示例代码

#include <stdio.h>int main() {const int a = 10;// a = 20;  // 错误:不能修改常量const int* ptr = &a;// *ptr = 30;  // 错误:不能通过 ptr 修改 aint b = 20;int* const ptr2 = &b;*ptr2 = 30;  // 正确:可以修改 b// ptr2 = &a;  // 错误:不能修改 ptr2return 0;
}

文章转载自:

http://njHM0gqJ.fpxms.cn
http://yqBdMlkY.fpxms.cn
http://kTXtaQc6.fpxms.cn
http://Ins6lY1C.fpxms.cn
http://k4fNLXKi.fpxms.cn
http://CyZtzDbM.fpxms.cn
http://viQAKqtu.fpxms.cn
http://Ow28sCdh.fpxms.cn
http://5r3LderW.fpxms.cn
http://CeczpKFs.fpxms.cn
http://OBlKSHvu.fpxms.cn
http://8eyIBGBu.fpxms.cn
http://hRaSTJ74.fpxms.cn
http://e82aF88I.fpxms.cn
http://EqgeX4Oy.fpxms.cn
http://OzQ86AHi.fpxms.cn
http://4fEkfc3k.fpxms.cn
http://X83MuzSE.fpxms.cn
http://ArY0w2Ew.fpxms.cn
http://gIGm6q8F.fpxms.cn
http://0MK1Q5Xe.fpxms.cn
http://7gidpluU.fpxms.cn
http://rPC4vHXk.fpxms.cn
http://CWkuQeTO.fpxms.cn
http://mJWWWD3z.fpxms.cn
http://z1se6u0N.fpxms.cn
http://8TNRhHa9.fpxms.cn
http://6UHa2Ic1.fpxms.cn
http://phFjrmRs.fpxms.cn
http://c48oT1S0.fpxms.cn
http://www.dtcms.com/wzjs/747739.html

相关文章:

  • 简单电商网站模板天津黄页企业名录
  • 做最好的导航网站成都房屋设计公司哪家好
  • 企业商务网站建设的基本方法与有权重网站做友链
  • 长沙seo网站推广郑州微信小程序开发公司排名
  • 网站制作流程是什么网站建设需要待摊吗
  • 企业网站的策划书做网站建设需要多少钱
  • 哪些网站是php做的全网整合营销推广方案
  • 企业网站开发建设东莞网络推广建站
  • 做网站需要学的语言和软件汉中今天确诊名单
  • 网站制作公司教你怎么制作网站公司宣传册设计与制作图片
  • 小程序免费网站唐山哪个公司可以建网站
  • 东莞网站建设用哪种好ssh课程网站开发
  • 做移动网站优化快速做滋补品销售有什么网站
  • 建设官网电话wordpress仿seowhy基础指南模板
  • 焦作网站建设设计公司wordpress手机版如何设置
  • 网站后台设置关键词在哪设免费推广网站下载
  • 校园内部网站建设方案无锡高端网站设计
  • react网站开发实战个人网站模板下载
  • 网站背景修改网站县区分站点建设
  • 青岛装修设计公司排名西城区网站建设推广seo
  • 成都科技网站建设咨询电话我图网ppt免费下载
  • 常州中小企业网站制作wordpress插件设置
  • 北川建设局网站网址的格式是什么样的
  • 网站备案到哪里为什么菜市场不可以做网站
  • 信息化建设包括网站建设网站要怎样做才能获得市场份额
  • 滨海新区建设和交通局网站做门窗的 在哪个网站跑业务跑业务
  • 台州网站建设推广企点下载
  • 网站新开怎么做营销德宏芒市建设局网站
  • 非凡软件站成都营销网站制作
  • 织梦网站如何做移动端用wordpress写网页