数据结构与算法第一节课的核心概念和基本算法,你能详细解释一遍吗?

2026-04-16 20:312阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计668个文字,预计阅读时间需要3分钟。

数据结构与算法第一节课的核心概念和基本算法,你能详细解释一遍吗?

一、实参与形参的合并方式

1.传值传递+递归+(1)这种方式是单向的,也就是说最终形参的变化不会影响实参的值。

2.传址传递+递归+(2)这种方式是双向的,相当于形参是实参的另一个别名。

一、实参与形参的结合方式

1.传值传递

这一种方式是单向的,也就是说最终形参的变化并不会影响实参的变化值。

2.传址传递(&)

这一种方式是双向的,相当于形参是实参的另一个别称,这样形参的变化就会影响实参的值。(即实参与形参均指向相同的地址)

二、&在c/c++中的作用

1.取地址:

1 int *p=&a;

这行代码的意思是说声明一个指针p指向a的地址。

2.引用:

如传址传递。

3.按位与:

按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只要对应的二个二进位都为1时,结果位就为1。

4.&&表示且的关系

三、const &a与传值传递的区别:

1 template<class T> 2 T abc(const &a,const &b,const &c) 3 { 4 return a+b*c 5 6 }

在上面一个例子里,前者比后者的更加节省内存,后者的需要进行声明内存和删除内存的处理,所以前者更优。

四、*在c/c++中的作用:

1.乘法

2.声明指针

3.取指针所对应地址的值:

如:

1 int *a = 1; 2 int b = *a;

五、条件编译:

数据结构与算法第一节课的核心概念和基本算法,你能详细解释一遍吗?

1 /*写在文件开头*/ 2 #ifndef XXX 3 #define XXX 4 5 6 7 /*写在文件结尾*/ 8 #endif

条件编译的作用主要是为了防止重复声明。

六、为一个二维数组分配内存空间

1 template<class T> 2 bool make2dArrray(T ** &x,int numberOfRows,int numberOfCloumns) 3 {//创建一个二维数组 4 5 try{ 6 7 //创建行指针 8 x = new T* [numberOfRows]; 9 10 //为每一行分配空间 11 for(int i=0;i<numberOfRows,i++) 12 x[i] = new int [numberOfColumns]; 13 return true; 14 15 } 16 catch(bad_alloc){return false;} 17 18 19 }

前人总结,牢记。

本文共计668个文字,预计阅读时间需要3分钟。

数据结构与算法第一节课的核心概念和基本算法,你能详细解释一遍吗?

一、实参与形参的合并方式

1.传值传递+递归+(1)这种方式是单向的,也就是说最终形参的变化不会影响实参的值。

2.传址传递+递归+(2)这种方式是双向的,相当于形参是实参的另一个别名。

一、实参与形参的结合方式

1.传值传递

这一种方式是单向的,也就是说最终形参的变化并不会影响实参的变化值。

2.传址传递(&)

这一种方式是双向的,相当于形参是实参的另一个别称,这样形参的变化就会影响实参的值。(即实参与形参均指向相同的地址)

二、&在c/c++中的作用

1.取地址:

1 int *p=&a;

这行代码的意思是说声明一个指针p指向a的地址。

2.引用:

如传址传递。

3.按位与:

按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只要对应的二个二进位都为1时,结果位就为1。

4.&&表示且的关系

三、const &a与传值传递的区别:

1 template<class T> 2 T abc(const &a,const &b,const &c) 3 { 4 return a+b*c 5 6 }

在上面一个例子里,前者比后者的更加节省内存,后者的需要进行声明内存和删除内存的处理,所以前者更优。

四、*在c/c++中的作用:

1.乘法

2.声明指针

3.取指针所对应地址的值:

如:

1 int *a = 1; 2 int b = *a;

五、条件编译:

数据结构与算法第一节课的核心概念和基本算法,你能详细解释一遍吗?

1 /*写在文件开头*/ 2 #ifndef XXX 3 #define XXX 4 5 6 7 /*写在文件结尾*/ 8 #endif

条件编译的作用主要是为了防止重复声明。

六、为一个二维数组分配内存空间

1 template<class T> 2 bool make2dArrray(T ** &x,int numberOfRows,int numberOfCloumns) 3 {//创建一个二维数组 4 5 try{ 6 7 //创建行指针 8 x = new T* [numberOfRows]; 9 10 //为每一行分配空间 11 for(int i=0;i<numberOfRows,i++) 12 x[i] = new int [numberOfColumns]; 13 return true; 14 15 } 16 catch(bad_alloc){return false;} 17 18 19 }

前人总结,牢记。