![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
沙师弟哪里去
凡心所向,素履以往;生如逆旅,一苇以航;
展开
-
static的常用用法
1、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,转载 2017-04-07 17:10:26 · 1116 阅读 · 0 评论 -
DCT变换编码及C语言实现
离散余弦变换(Discrete Cosine Transform,简称DCT变换)是一种与傅立叶变换紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。 离散余弦变换(DCT)是N.Ahmed等人在1974年提出的正交变换方法。它...转载 2017-07-13 21:39:44 · 8333 阅读 · 0 评论 -
opencv3.0 官网地址
https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.0.0/原创 2017-07-26 11:11:58 · 328 阅读 · 0 评论 -
读取图像数据的C实现(.raw存储格式)
这是一篇关于均值滤波的文章,转载过来参考其代码的读取图像数据部分原文地址 http://www.cnblogs.com/qiqibaby/p/5277739.html// junzhilvbo.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "stdlib.h"#include "string.h"#define DATA_X 256 ...原创 2017-08-11 09:52:47 · 5679 阅读 · 0 评论 -
用opencv对图像进行处理
把有用的博文收藏一下http://blog.csdn.net/ab1322583838/article/details/52048141如何对图像的像素进行操作:http://www.xuebuyuan.com/1730735.htmlMat的属性:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7326...原创 2017-07-26 22:37:34 · 1394 阅读 · 0 评论 -
预编译的作用和目的
博客园的文章:http://www.cnblogs.com/rusty/archive/2011/03/27/1996806.html原创 2017-09-11 15:41:45 · 1585 阅读 · 0 评论 -
C语言---传值与传地址
<1>传值:实参把值传给了形参,但没有传地址即对实参的修改无效。核心原理:函数会对形参和中间的临时变量(函数内定义的变量)重新分配空间。<2>传地址:实参把自己的内存地址传给了形参,这样对实参的修改就有效了。大多数类型都是传值,传地址有以下3种方式:(1)、全局变量(把参数定义成全局变量,一次性分配空间,传地址,函数访问时无须参数,直接访问)(2)、转载 2017-09-19 15:30:10 · 533 阅读 · 0 评论 -
哈夫曼编码
霍夫曼编码(Huffman Coding)是一种编码方法,霍夫曼编码是可变字长编码(VLC)的一种。霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。霍夫曼编码的具体步骤如下:...转载 2017-09-19 21:35:10 · 2226 阅读 · 0 评论 -
C语言---传值与传地址
<1>传值:实参把值传给了形参,但没有传地址即对实参的修改无效。核心原理:函数会对形参和中间的临时变量(函数内定义的变量)重新分配空间。<2>传地址:实参把自己的内存地址传给了形参,这样对实参的修改就有效了。大多数类型都是传值,传地址有以下3种方式:(1)、全局变量(把参数定义成全局变量,一次性分配空间,传地址,函数访问时无须参数,直接访问)(2)、指针是传值的,但指针的间接引用是传地址转载 2017-09-19 21:37:55 · 860 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似转载 2017-09-28 10:18:13 · 262 阅读 · 0 评论 -
哈夫曼编码算法
huffman.h#ifndef __HUFFMAN_H_FE#define __HUFFMAN_H_FE// 哈夫曼树的节点结构typedef struct _huff_node …{ float weight; // 节点权重 int lchild; // 节点的左孩子 int rchild;转载 2017-10-20 20:23:33 · 1017 阅读 · 0 评论 -
RLE行程长度压缩算法
RLE(Run Length Encoding)行程长度压缩算法(也称游程长度压缩算法),是最早出现、也是最简单的无损数据压缩算法。RLE算法的基本思路是把数据按照线性序列分成两种情况:一种是连续的重复数据块,另一种是连续的不重复数据块。对于第一种情况,对连续的重复数据块进行压缩,压缩方法就是用一个表示块数的属...转载 2017-06-08 21:48:36 · 1569 阅读 · 1 评论 -
C语言指针导学(5)——指针与结构
指针不仅可以指向变量、数组、函数,还可以和结构(structure)联系起来,这使得C语言的威力倍增,初学C语言的朋友对结构可能不太重视,对它的理解也不够深入,但事实上,结构是一个非常重要的工具,有了它我们可以很轻松的构建一些仅靠其它C语言特性做起来很复杂的程序。深入地理解结构会对你理解C++的面向对象有很大帮助,并且会让在你学习数据结构时有一份惬意的心情。(本讲中默认读者已经对结构有了基本的认识转载 2017-06-06 21:51:18 · 351 阅读 · 0 评论 -
重载操作符
重载操作符的限制 可以重载的操作符+ - * / % ^ & | ~! = += -= *= /= %^= &= |= > >>= = && || ++ -- ->* ‘ ->[] () new delete new[] delete[] 不能重载的算符 . :: .* ?: s原创 2017-04-28 21:39:37 · 312 阅读 · 0 评论 -
#include<> 和 #include""的区别
#include< file >编译程序会先到标准函数库中找文件 #include”file” 编译程序会先从当前目录中找文件参考原文 转: 在C程序中包含文件有以下两种方法: (1)用符号“<”和“>”将要包含的文件的文件名括起来。这种方法指示预处理程序到预定义的缺省路径下寻找文件。预定义的缺省路径通常是在INCLUDE环境变量中指定的,请看下例: INCLUDE=C:\C转载 2017-04-14 11:23:45 · 1434 阅读 · 0 评论 -
size_t,ssize_t,int和long的区别
———————————-size_t————————————–size_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的真实类型与操作系统有关,在32位架构中被普遍定义为:typedef unsigned int size_t;而在64位架构中被定义为:typedef unsigned long...转载 2017-05-02 17:14:03 · 556 阅读 · 0 评论 -
size_t ssize_t socklen_t 关系
原文地址:ssize_t socklen_t”>size_t ssize_t socklen_t作者:yc2yuysize_t 解释一:为了增强程序的可移植性,便有了size_t,它是为了方便系统之间的移植而定义的,不同的系统上,定义size_t可能不一样。 在32位系统上 定义为 u...转载 2017-05-02 17:33:59 · 474 阅读 · 0 评论 -
sendto()函数
经socket传送数据相关函数:send, sendmsg, recv, recvfrom, socket头文件:#include #include 定义函数:int sendto(int s, const void * msg, int len, unsigned int flags, const struct sockaddr * to, int tole原创 2017-04-14 21:26:37 · 25177 阅读 · 3 评论 -
int main(int argc,char* argv[])详解
argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[]) { int i; for (i = 0; i<argc; i++) cout<<argv[i]<<转载 2017-04-26 12:00:53 · 317 阅读 · 0 评论 -
C语言指针导学(1)——指针到底是什么
请转载的朋友注明出处 一.指针到底是什么指针(pointer)到底是什么,弄清楚这个问题很重要,这是我们所讨论的话题的源头,而在阐述指针是什么之前,我们需要先来看一下变量的概念。我们知道,计算机的内存(primary storage)被划分为多个存储单元,这些存储单元可以以单个或者顺序相连组成一个更大单元的方式被使用。每一个单独的存储单元都是一个字节(byte),它通常由8个位(bit转载 2017-06-04 21:41:01 · 288 阅读 · 0 评论 -
C语言指针导学(2)——指针的定义及运算
请转载的朋友注明出处 二.指针的定义及运算上一讲已经说过,指针是一种变量,它也有自己的地址,但由于它是专门用来存放地址的变量,所以把它认为是种特殊的变量,既然有着特殊的身份,那么也理应受到特殊的待遇,下面来看看它享受了那些优待。1.指针的定义在C语言中,定义一个普通的变量(如整型数),我们这样做:int i;而定义一个指针变量(指针)我们需要这样做:int *p ;转载 2017-06-06 21:41:38 · 344 阅读 · 0 评论 -
C语言指针导学(3)——指针与数组的“爱恨情仇”
请转载的朋友注明出处 三.指针与数组的“爱恨情仇”本将中指针的算术运算本应放在第二讲中,但考虑到它与数组关系密切故将其纳入本讲。1.指针的算术运算在上一讲指针初始化的第4种方式中提到了可以将一个T类型数组的名字赋给一个相同类型的指针,这说明指针可以和数组发生联系,在后面我们会看到这种联系是十分密切的。当有语句char ary[100] = {‘a’, ‘b’, ‘c’, ‘d’,’e转载 2017-06-06 21:43:01 · 428 阅读 · 0 评论 -
C语言指针导学(4)——分清函数指针和指针函数
请转载的朋友注明出处 四.分清函数指针和指针函数关于指针和数组斩不断理还乱的恩怨还真是说了不少,不过现在应该已经理清了。有了上一讲的基础,本讲的内容相对来说就比较容易理解了。1.指向函数的指针(函数指针)来分析这样一个声明,void (*f) ( );虽然()的优先级高于*,但由于有括号存在,首先执行的是解引用,所以f是一个指针;接下来执行( ),表明f指向一个函数,这转载 2017-06-06 21:44:54 · 221 阅读 · 0 评论 -
二维数组的动态分配及参数传递
1. C语言动态分配二维数组(1)已知第二维[cpp] view plain copy print?char (*a)[N];//指向数组的指针 a = (char (*)[N])malloc(sizeof(char *) * m); printf(”%d\n”, sizeof(a));//4,指针 printf(”%d\n”, sizeof(a[0]));//N,一维数组 fr转载 2017-11-10 15:19:14 · 288 阅读 · 0 评论