关于C++学习初步总结(2)C++对C的扩展2

今天是马上要做测试,所以临阵磨枪赶紧学习总结一波的北。果然成为大佬的路途道阻且长。我估计是无望了…

关于C++学习初步总结(2)C++对C的扩展2

刚写了个开头就测试了,测试磨灭了我的激情,啊,为什么要学习呢

1.变量的引用

1.功能:为变量取别名
格式:类型 &变量1=变量2 //两个变量不能用同一个别名

#include <iostream>
using namespace std;
void swap(int &a,int &b)
{ int temp;
  temp=a;
  a=b;
  b=temp;
}

int main( )
{int i=3,j=5;
 swap(i,j);      //交换两个变量的值
 cout<<i<<","<<j<<endl;
 return 0;
}

将引用作为函数参数

void swap(int a,int b) //普通变量
void swap(int &a,int &b)//引用变量

别名代换:
同一个变量可以有多个别名,多个变量不能共用一个别名。
对引用的进一步说明

1)引用变量都具有非void类型
(2)不能建立引用的数组
(3)可以建立常引用变量,不允许修改常引用变量的值
例:

  int i ;
     const  int &a = i;
     a = 3;   //    错误的用法
     i  = 8;   //    i 不是常变量,可以修改

(4)可以建立指针变量的引用变量
例:

  int i; 
    int  *p = & i;
    int * &pt = p; // pt是p的别名变量,同时
                            // 也是指针变量

2.内置函数

inline 函数类型 函数名(形参表)
 {    函数体    } 
#include <iostream>
using namespace std;
inline int max(int a,int b,int c)   // 这是一个内置函数,
                                                 // 求3个整数中的最大者
{if (b>a) a=b;
 if (c>a) a=c;
 return a;
} 
int main( )
{int i=7,j=10,k=25,m;
 m=max(i,j,k);
 cout<<"max="<<m<<endl;
 return 0;
}

使用内置函数可以节省程序的运行时间,但增加了目标程序的长度。所以在使用时要衡量时间和空间的得失。

3.作用域运算符

局部变量和全局变量同名:

#include <iostream>
 using namespace std;
 float a=13.5;
 int main( )
 {    int a=5;
      cout<<a<<endl;
      return 0;    }

程序中有两个变量a,一个是全局变量,另一个是main函数的局部变量,根据局部变量会屏蔽同名的全局变量规则,在函数中出现的变量a是局部变量,因此输出的值是5,而不是13.5,为了在函数中访问全局变量C++提供了作用域运算符 :: ,可以用来指定要访问的作用域,可以把main函数改写成

#include <iostream>
 using namespace std;
 float a=13.5;
 int main( )
 {int a=5;
 cout<<a<<endl;
 cout<<::a<<endl;
  return 0;
 }

::a表示全局变量a。注意不能用::访问局部变量。

4.字符串变量

定义字符串变量
格式: string 变量名表;
可以在定义变量时用字符串常量为变量赋初值: string 变量名 = 字符串常量
注意:如用字符串变量,在程序开始要用包含语句把C++标准库的string头文件包含进来。

5.动态分配/撤销内存的运算符new和delete

1.分配内存运算

new  类型 [ (初值)]

类型是决定分配空间尺寸的关键元素,如果运算结果正确,它的值是分配内存空间的起始地址,否则返回NULL。
例:

int  *a =new int ;
    int  *b =new int( 100);
    char *ch = new char[10];
    int (*q)[4] = new int [5][4];
     float  * p = new float(3.14159);

2.归还动态内存运算
delete[] 指针变量
[] 代表数组,如果不是数组可以省略[]。
运算功能:撤销指针变量所指的动态内存空间,指针变量的数据类型决定了空间尺寸的大小。
例:

char *p=new char[10];
        … …
   delete [ ] p;
//用动态内存存放结构体变量
#include <iostream>
#include <string.h>
using namespace std;
struct student 
{char name [10];
 int num;
 char sex;
};
int main ( )
{student *p;
 p=new student;
 strcpy(p->name,"Wang Fun");
 p->num=10123;
 p->sex='M';
 cout<<p->name<<"  "<<p->num<<"  "<<p->sex<<endl;
 delete p;
 return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值