【每天学一点】C++基础02

  今天又看了几家公司,感觉暑期实习都没有的招了,好像只有10月份的秋招了,好慌,怎么办。又再网上投了几家公司,依旧没什么消息呢。果然已经过了找实习的时间了。今天依旧是放假的样子,教研室依旧没什么人,好无聊啊。


const限定符:定义一个变量,它的值不能被改变。
1.任何试图向const限定的变量赋值,都会引发错误。

const float pi=3.14;
pi=3.14 //错误

2.const对象必须初始化

const int a=get_num(); //正确,运行时初始化
const int c=10 //正确,编译时初始化
const int b;  //错误

3.多文件引用常量

//global.h
extern const float pi;

//global.cpp
extern const float pi = 3.14; //定义初始化一个常量

//b.cpp
#include<iostream>
#include"global.h"
using namespace std;
float getR(){
    return pi * 2;
}

//a.cpp
#include<iostream>
#include"global.h"
#include"b.h"
using namespace std;
void main(){
    float r = getR();
    cout << "r=" << r << endl;
    float s = pi*r*r;
    cout << "s=" << s << endl;
    getchar();
}

输出结果:
r=6.28
s=123.837

从结果可以看出通过extern,不同文件都可以用到定义的常量。

const引用和指针

int a=1;
int &r1=a;
const int &r2=a;
r1=0;     //将a的值变成0
r2=0;     //错误,不能对常量引用修改
const int a=1;
int *p1=&a;  //错误,a是一个常量
const int *p2=&a;  //正确,p2可以指向一个int型常量
*p2=0//错误,不能赋值*p2

常量指针:

//指针常量
int a,b=1;
const int *p1=&a;
*p1=2; //错误,*p不能赋值。
p1=&b //正确

//常量指针
int *const p2=&a;
*p2=0; //正确,可以赋值
p2=&b; //错误P2不可改变

//补充
const int a=1;
int b=3;
const int *p3=&a; //正确,
p3=&b; //正确
int *const p4=&a; //错误,由于*p4可以修改,而a为常量,所以程序报错。

constexpr :可以让系统判断验证变量的值是否是一个常量表达式。

constexpr int m=1//1是常量表达式 
constexpr int s=2*m; //m*2是个常量表达式 
constexpr int sz=size(); //只有当size()是一个constexpr函数时,这才是一条正确的语句

类型别名

//typedef
typedef double dou; //dou是double的同义词
typedef dou a,*b;  //a是double的同义词,b是double*的同义词

//using
using s=double //s是double的同义词 

 
预处理保护头文件重定义

#ifndef GLOBAL_H  //当且仅当变量未被定义时为真,与之对应#ifdef
#define GLOBAL_H
extern const float pi;
#endif  //定义过后忽略#define~#endif之间语句

 #pragma once //似乎也有用。  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值