C++基础知识(Ⅰ)

参考资料来自:https://blog.csdn.net/alvanchen/article/details/5744457

http://c.biancheng.net/view/2193.html


前言

两年前学的C++,由于最近都在使用Python,导致C++几乎已经遗忘。为了将来的实习和求职,笔者决定快速复习C++基础知识,本节主要复习基础语句与符号。


一、基础知识

1.头文件与命名空间

#include <iostream>
using namespace std;

int main(){
    return 0;
}

2.输入输出

C++的输入输出形式如下:
cin>>:输入
cout<<:输出

int main(){
    int x;
    float y;
    cin>>x>>y;
    cout<<"The integer number is x="<<x<<endl;
    cout<<"The float number is y="<<y<<endl;
    return 0;
}

也可沿用C语言的输入输出,速度比cin和cout快。
scanf_s():输入
printf():输出

int main(){
    int a;
    scanf_s("%d", &a);  //注意:scanf_s需要指针变量,因此读取&a
    int b = a + 1;
    printf("%d\n", b);
    return 0;
}

3.循环语句

(1)for

测试一个for循环实现求和函数

int SUM(int n){
    int total = 0;
    for(int i=1; i<=n; i++){
        total += i;
    }
    return total;
}

int main(){
    int n;
    cin>>n;
    cout<<"total="<<SUM(n)<<endl;
    return 0;
}

(2)while

condition1和condition2分别指循环继续的条件和跳出循环的条件。

while(condition1){
    if(condition2){
        break;
    }
}

(3)do while

do{
    if(condition2){
        break;
    }
}while(condition1)

4.switch语句

可把switch当作一种条件执行语句。注意,每一个case后要加break,否则会一直运行下去。

int main(){
    char grade = 'C';
    switch(grade){
    case 'A':
        cout<<"great!"<<endl;
        break;
    case 'B':
        cout<<"nice!"<<endl;
        break;
    case 'C':
        cout<<"pass!"<<endl;
        break;
    default:
        cout<<"fail!"<<endl;
    }
    return 0;
}

二、基本符号

1.运算符

运算符名称符号
取模%
逻辑与&&
逻辑或||
逻辑非!
条件表达式(x>y)?x:y
按位与&
按位或|
按位非~
按位左移、右移<<, >>

2.指针

指针变量是c++语言中的特色。

int main(){
    int var = 20;
    int* ip;  //声明指针变量
    ip = &var;  //指针变量中存储var地址
    cout<<ip<<endl;  //ip的值是指针存储的地址
    cout<<*ip<<endl;  //*ip的值是指针存储的内容,即var
    return 0;
}

3.引用

引用符&和取地址符&一样。引用即给某个变量取个别名。

int main(){
    int i = 10;
    int& r = i;  //为i声明引用变量
    cout<<"i:"<<i<<"r:"<<r<<endl;
    r += 1;
    cout<<"i"<<i<<"r"<<r<<endl;
    return 0;
}

运行完以上代码,发现输出的i和r值一样,且在引用变量r改变时,i也随之改变。

4.new和delete

new动态分配内存,delete释放内存

int* p = new int;  //分配一个int型内存空间
delete p;  //释放内存
int* p = new int[10];  //分配一个int型数组空间,大小为10
delete[] p;  //释放内存

5.const

常量指针:该指针指向一个常量,指针指向的地址里的内容不可修改,但指向的地址可修改。

int a, b;
const int*p=&a;  //常量指针,将a的地址赋予指针p,使指针p指向a
*p = 1;  //报错,不可修改地址里的内容
p = &b;  //不报错,可修改指向的地址

指针常量:指针指向的地址不能修改,但该地址里的内容可以修改。

int a, b;
int* const p = &a;  //指针常量
*p = 1;  //不报错,可修改地址里的内容
p = &b;  //报错,不可修改指向的地址

指向常量的指针常量:指针指向的地址和地址内容均不可修改。

const int* const p;

三、函数

1.内联函数

消除函数调用的时空开销,C++ 提供一种提高效率的方法,即在编译时将函数调用处用函数体替换,这种在函数调用处直接嵌入函数体的函数称为内联函数。
注意:需要在函数定义时加inline,表示内联函数。仅在函数声明时无效。

inline int SUM(int n) {
	int total = 0;
	for (int i = 1; i <= n; i++) {
		total += i;
	}
	return total;
}

int main(){
    int n;
    cin>>n;
    cout<<"total="<<SUM(n)<<endl;
    return 0;
}

2.默认参数

若给参数添加默认值,一定要将次参数放在无默认值的参数后面,否则报错。

void func(int a, int b=10){}
void func(int a=10, int b){}  //报错

3.重载函数

c++允许多个函数拥有相同的名字,只要参数列表不同(参数类型不同或参数个数不同)即可。

int ADD(int a, int b) {
	cout << "1" << endl;
	return (a + b);
}
int ADD(float a, float b) {
	cout << "2" << endl;
	return (a + b);
}
float ADD(int a, float b) {
	cout << "3" << endl;
	return (a + b);
}

int main() {
	int a1 = 1;
	int b1 = 2;
	float a2 = 1.2;
	float b2 = 1.1;
	cout << "total=" << ADD(a1, b1) << endl;
	cout << "total=" << ADD(a2, b2) << endl;
	cout << "total=" << ADD(a1, b2) << endl;
	return 0;
}

注意:同一函数名且参数完全相同时,返回值类型要相同,否则算重定义报错。

int ADD(int a, int b);
float ADD(int a, int b);  //重定义报错

四.总结

后续将重点对类和对象部分的编程进行复习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值