C/C++
文章平均质量分 92
小哥哥咯
爱自由,爱生活!
展开
-
什么时候用指针形参?什么时候用引用形参?
0.在作为参数的作用中指针和引用的共同特点是都可以在函数中改变实参对象,标准 C 中是没有引用形参的,只能使用指针形参。1.就函数参数传递数值而言,传递指针与传递引用唯一的优势是避免拷贝,同时带来实参被改变的风险,但是可以通过const来尽量避免。2.就为改变实参这个目的而言,指针对于引用的优势在于当你有可能需要传入一个空的概念*(尚未创立的对象,空指针可以表示,而引用无法表示空的概念)的时候,指针原创 2016-08-15 18:11:36 · 6155 阅读 · 1 评论 -
C语言提高
*++p、*(++P):地址先增再取内容; *p++、*(P++):先取内容再增地址 (*p)++:内容+1指针变量自增一次的量和其指向的数据类型有关,若指向的是一个int,地址没错增加一个int型大小的空间,若指向的是一个int数组,则没错增加该int型数组的大小。int arr[10];数组名arr表示数组第一个元素的地址,arr、&arr打印出的地址是一样的,...原创 2018-05-16 07:12:44 · 3707 阅读 · 0 评论 -
压缩&解压文件
tar -cvf abc.tar abc 把abc这个目录打包,生成一个文件名字叫abc.tartar -xvf abc.tar 把abc.tar这个文件中所有的文件提取出来tar只负责把多个文件打包,而不负责压缩gzip abc.tar 把abc.tar文件压缩为abc.tar.gzgzip -d abc.tar.gz 把abc.tar.gz解压zip abc.z...原创 2018-05-05 11:10:29 · 237 阅读 · 0 评论 -
1.linux怎样完全删除用户(即使在user被占用时)
比如用userdel 删除用户时,会报错user hadoop is currently used by process 2994 意思是说这个用户正在被进程2994占用,并且即使被删除之后还是在/home的目录下找到这个用户名,进而无法创建这个用户了,需要做到一下几步: 1.先用rm -rf 命令把当前/home 目录下的用户名删除(看见就烦) 2.用userdel +用户名删除 会报出...原创 2018-05-05 11:07:43 · 6939 阅读 · 0 评论 -
C和C++的一些语法区别
①struct 在C语言中,试用定义的struct类型的变量方式:struct [定义的变量] [生成的变量];在C++语言中,试用定义的struct类型的变量方式:struct [定义的变量] [生成的变量]或者[定义的变量] [生成的变量]。 在C语言中struct定义的变量中不能有函数,而在C++中可以有函数。②函数的参数以及返回值(以test()为例) C...原创 2018-05-05 11:31:48 · 10347 阅读 · 1 评论 -
计算n!的十进制表示最后有多少个0
简单实现:#include<stdio.h>#include<stdlib.h>int fun(int n){ int num = 0; int i,j; for (i = 5;i <= n;i += 5) { j = i; while (j % 5 == 0) { num++;原创 2016-12-31 09:26:32 · 2645 阅读 · 0 评论 -
0-1背包问题
代码:#include <stdio.h>#include <stdlib.h>#include <memory.h>#include <string.h>#define DEBUG //调试预处理标记int * pValue = NULL; //物品的价值int * pWeight = NULL;//物品的重量int counts = 0; //物品的个数int *realS原创 2016-10-29 12:28:24 · 364 阅读 · 0 评论 -
指针/地址 到底是左值还是右值
一下引用网友:lm_whales左值可以当作右值使用,右值不能当左值用. 左值可以出现在=的任何一方, 出现在=右方的左值,是把左值当作右值使用,这是非常正常的.右值,不能当作左值使用. 能够(单独)出现在=左方的是左值(实际是左右值,左值总是可以当作右值使用) 只能够出现在=右方的,是右值(纯粹的右值),不能当作左值使用. 左值代表地址单元,右值代表数据本身.地址单元里的数据,是左值变量原创 2016-08-14 09:05:11 · 5438 阅读 · 7 评论 -
五种方式输出二维数组
五种方式输出二维数组#include <iostream>#include <cstdlib>#include <cstring>#include <vector>#include <cstddef>using namespace std;using int_array = int[4];typedef int int_array[3];int main(){ int ia[原创 2016-08-13 22:57:36 · 21222 阅读 · 0 评论 -
auto和decltype的用法总结
auto和decltype的用法总结原创 2016-08-12 20:10:01 · 553 阅读 · 0 评论 -
二叉树的接口定义及实现
/*tree.h --- ADT接口定义*/#ifndef TREE_H_INCLUDED#define TREE_H_INCLUDED#include<stdbool.h>typedef struct item{ char petname[20]; char petkind[20];}Item;#define MAXITEM 10typedef struct node{翻译 2016-08-10 17:06:00 · 814 阅读 · 0 评论 -
中缀表达式求值 C++
中缀表达式求值 C++实现四则运算原创 2016-08-22 10:58:09 · 2870 阅读 · 0 评论 -
抽象数据类型(ADT) 双链表实现
/*main.c----测试函数*/#include<stdio.h>#include<stdlib.h>#include"list.h"static void show(const ITEM * item){ printf("Film's name:%-20sRating:%-2d\n",item->title,item->rating);}int main(void){原创 2016-08-10 14:30:48 · 508 阅读 · 0 评论 -
为什么链表操作的函数的参数是双指针型变量
#include<stdio.h>#include<stdlib.h>#define TTEM inttypedef TTEM * intp;intp test1(intp pf);/*类似于普通变量的传值函数*/intp test2(intp *pf);/*类似于普通变量的传址函数*/int main(void){ intp p1,p2; int a1 = 1,a2原创 2016-08-08 19:14:15 · 1313 阅读 · 0 评论 -
抽奖程序 C/C++
#include<stdio.h>#include<stdio.h>#define MAX 20int FLAG[MAX];int count;void select(int *people,int count);void show(int *show,int count);int main(void){ int people[MAX],i; srand((unsig原创 2016-08-08 15:51:51 · 4627 阅读 · 0 评论 -
win10、C语言、codeblocks、Mysql
材料:1.mysql-5.1.55-win322.mysql-connector-c-noinstall-6.0.2-win323.codeblocks-16.014.win10说明:1.mysql解压版 复制my-huge.ini为my.ini 其他的参考网络教程 ,用complete模式安装mysql解压版MySQL安装教程2.codeblocks-16.01 参考网络教程 这个版本可以汉化,汉原创 2016-08-17 09:40:17 · 922 阅读 · 0 评论 -
C++基础
①引用没有定义,是一种关系型声明。声明它和原有某一变量(实体)的关系。故而类型与原类型保持一致,且不分配内存。与被引用的变量有相同的地址。 ②声明的时候必须初始化,一经声明,不可变更。 ③可对引用,再次引用。多次引用的结果,是某一变量具有多个别名。 ④&amp;符号前有数据类型时,是引用。其它皆为取地址。引用的本质:void motifyA(int *const a) ...原创 2018-05-27 16:22:20 · 239 阅读 · 0 评论