C\C++
JettLv
实践让生活更美好
展开
-
函数名作为函数参数
**函数名作为函数参数**预先知道各个功能函数function_num()参数,并且参数相同的情况下,使用该函数名function_num作为函数Option参数,执行不同的function_num函数的功能return_type (*p_name)(arg_list);//表示返回值为return_type,参数列表为arg_list的函数指针p_name.参考代码:#include<stdio.h> #include<stdlib.h> t原创 2020-08-11 17:29:31 · 1769 阅读 · 0 评论 -
exit()函数
**exit()函数与return关键字**语法: #include <stdlib.h> void exit(int exit_code);功能:终止程序的执行。参数exit_code 传递给返回值,通常零值表示正常结束,非零值表示应错误返回。 用法:exit(0)表示程序正常, exit(1)和exit(-1)表示程序异常退出,exit(2)表示表示系统找不到指定的文件特点: 单独的进程是返回给操作系统的。如果是多进程,是返回给父进程的; exit()就是当前进原创 2020-08-10 22:01:41 · 1501 阅读 · 0 评论 -
assert宏的用法
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include <assert.h> void assert( int expression );使用场景 对来自系统内部的可靠的数据使用断言,对于外部不可靠数据不能够使用断言,而应该使用错误处理代码 即断言是用来处理不应该发生的非法情况,而对于可能会发生且必须处理的情况应该使用错误处理代码,而不是断言。原则 断言内的条件是无条件为true的,如果断言失败,原创 2020-08-10 20:14:54 · 471 阅读 · 0 评论 -
使用返回值动态传递内存
使用返回值动态传递内存(return)堆内存可以作为返回值返回#include <iostream>using namespace std;char *GetMemory3(int num){ char *p = (char *)malloc(sizeof(char)* num); // 申请堆内存 return p;}void Test3(void){ char *str = NULL; str = GetMemory3(100); strcpy(str,原创 2020-08-04 16:51:14 · 169 阅读 · 0 评论 -
C语言中函数参数传递的方式:值传递,地址传递
**C语言中函数参数传递的方式:值传递,地址传递**值传递:将实参的值复制至形参的相应存储单元中,实参与形参占用不同存储单元,单向传递地址传递:使用数组名或者指针作为函数参数,传递的是该数组的首地址或指针的值,而形参接收到的是地址, 即指向实参的存储单元,形参和实参占用相同的存储单元引用传递:C++中主要内容: 1> c语言中地址传递实参的方法 2> 多函数嵌套传递实参的方法,二维指针 3> 数组作为函数参数,而不改变数组的值,可以复制数组内容再进行修改原创 2020-08-04 12:27:14 · 1619 阅读 · 0 评论 -
C语言中字符串定义与文字常量区
C语言中字符串定义与文字常量区C语言的内存组织方式 1>代码区,存放可执行代码 2>全局存储区,存放所有全局变量和静态变量 3>文字常量区,常量字符串 4>堆区,malloc,new 5>栈区,局部变量、函数形参,栈区变量的地址不可通过函数返回C语言中字符串定义形式 char *n = "hello"; char a[] = "hello"; 1. 变量n位于栈上,其内容是一个地址,指向位于文字常量区的“hello”,此时“hello”在内存中只有原创 2020-08-04 11:58:07 · 823 阅读 · 0 评论 -
输入含空格的字符串
cin遇到空格或回车就停止,无法识别回车。识别回车可以用以下方法if(getchar(a) == '\n') break;getline()#include<iostream>#include<string>using namespace std;int main(){ string s,t; getline(cin, s...原创 2019-06-08 15:51:07 · 710 阅读 · 0 评论 -
C++:heap堆的相关操作及跟踪调试案例
C++:make_heap()堆的相关操作#include<algorithm> //头文件 make_heap() //建堆,最大值在所给范围的最前面,其他位置不确定 pop_heap() //将堆顶(所给范围最前面)元素移到所给范围的最后,并将余下的最大的元素放在最前面 pop_back() //将所给范围的最后一个元素删除 push_back() ...原创 2019-07-01 22:11:27 · 293 阅读 · 0 评论 -
报错类型 template error: shadows template parm
使用模板时,不能在嵌套作用域中用相同的名称声明模板参数//Errortemplate<class T> class linklist{ template<class T> //错误 class node { }}//Correcttemplate<class T> class linklist{ template<clas...原创 2019-10-05 18:03:52 · 4075 阅读 · 0 评论