C++学习笔记——基础知识

C++学习笔记——基础知识

语句可以分为如下几类:

声明:声明变量,函数,数据类型(类,结构,枚举等),宏。声明不占用内存。

定义:定义如上类型的实例,定义要求系统给出资源,开辟内存。

过程语句:流程控制语句(do while ,while,for,continue,break,if else,)表达式语句,赋值语句等。

赋值语句:得以赋值的变量为左值,产生值的变量为右值。每一个赋值语句都有返回值,为一个右值。尽量使用+=这样的复合赋值运算符号

 

标示符(包括变量和函数等)的作用域

标示符的作用域可以分为全局作用域(global scope),局部(local scope),文件作用域(file scope),作用域是指标示符的可见性,通过标示符的位置来说明(文件作用域例外)的,不同作用域的变量可以有相同的标示符。

局部变量的作用域终止于声明该变量的语句块的末尾。

全局作用域是整个程序。全局作用域解析符::

文件作用域是整个转换单元(包括#include包含的文件)可见

作用域的屏蔽:同名的局部变量会屏蔽上层级别的同名局部变量

3存储类型:

Auto:每次执行到变量定义语句时,都将在内存中为该变量产生一个新的副本,并对其初始化,当离开变量的生存空间时,变量内存释放。存储在内存的栈空间

static的局部变量,作用域还是限于声明的语句块,但是在语句执行期间,变量始终保持它的值,初始化只在第一次执行时有用。static类型的变量存储在内存的固定空间

Extern:声明在另外一个转换单元要用到的变量,可以在函数的内部和外部,在内部那么只有这个函数可以使用该外部变量

Register:

在定义变量时一般要求初始化。

 

4 Const修饰符

Const char * str;指针指向的量不可变

Char* const str;指针不可变

Int fun() const;函数不可改变参数

Const int & a;

Const int a;

Const char* const str;

5 Wchar_t型变量:字符类型16

6

参数列表可变的函数:int func(int x,…)

无名形式参数:int func(int x,int){…}

默认的函数参数:void func(int = 5,double = 2);

良好的程序设计提倡每个函数都完成一个特定的功能

7函数重载:

1为不同操作重载

2为不同格式重载

Typedef的另一种用法:typedef long red;当red的类型改变时直接改变typedef语句就可

 

8程序的内结构:

程序被划为4logic段,可执行代码,静态数据,堆和栈

可执行代码和静态数据方在固定的位置

程序请求动态分配的内存来自于称为堆的内存池

局部数据对象,函数的参数以及调用函数和被调用函数的联系放在栈的内存池

 

9引用:

引用是个别名,一般要求初始化,可以用来简化复杂的表示。返回一个指向局部对象的引用(或者指针)是不容许的。空的引用是不存在的。

 

#include <iostream>

using namespace std;

int amount = 1;//全局变量

void Display();

int* GetData(void);

int main()

{

       cout << amount;

       int amount = 0;

       //Display();

       cout << ::amount;//通过域操作符调用全局变量

//屏蔽了全局amount

       cout << amount << endl;

       if ( int amount = 1)//局部变量,作用域为IF语句内部

       {

              cout << amount << endl;

       }

       else

       {

       }

       for (int i = 1;i<3;i++)

       {

              Display();

              cout << endl;

       }

       int* c = GetData();

       cout << *c;

       return 0;

}

void Display()

{

       static int amount = 3;

       amount--;

       cout << amount << endl;

}

int* GetData(void)

{

static int calendar = 40;//要用静态类型的数据

calendar++;

       return &calendar;//不能返回一个局部变量的引用或者指针

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值