摘要:
在c++中 struct 和class这两个关键字定义类的区别只有一个: 如果使用class在定义,那么定义在第一个访问标号前的任何成员都隐式指定为private;如果是使用struct关键字,那么这些成员都是public。使用class 还是 struct关键字来定义类,仅仅影响默认的初始化访问级别。 阅读全文
摘要:
排列组合问题的通用算法尽管排列组合是生活中经常遇到的问题,可在程序设计时,不深入思考或者经验不足都让人无从下手。由于排列组合问题总是先取组合再排列,并且单纯的排列问题相对简单,所以本文仅对组合问题的实现进行详细讨论。以在n个数中选取m(0=m; i--) //注意这里的循环范围{ b[m-1] = i -1; if (m> 1)combine(a,i-1,m-1,b,M);else// m == 1, 输出一个组合{for(int j=M-1; j>=0; j--)cout n ? n : m;int* order = newint[m+1];for(int i=0;i<=m 阅读全文
摘要:
今天想用C语言实现下数学上的组合和排列,一直很郁闷。 上网搜索到一个例子:#include #include //从n个元素的数组a中,取m个元素的组合bool zuhe(char a[],int n,int m){//p[x]=y 取到的第x个元素,是a中的第y个元素 int index,i,*p; p=(int*)malloc(sizeof(int)*m); if(p==NULL) { return false; } index=0; p[index]=0;//取第一个元素 while(true) { if(p[index]>=n) {//取到底了,回退 if(index==0) { 阅读全文
摘要:
昨日曹兄问我一个问题,想出了一个动态分配二维数组的ANSI C程序。 其实思想很简单,我一开始就想到了,肯定是先建立指针数组,然后每个指针数组再分配连续的空间。 画了个草图,可能看起来不怎么好看。。。 先定义一个指向指针的指针P,char**p,然后动态分配指针数组*p[row],就是二维数组的行,最后给每个指针数组又动态分配空间p[i][col],其实就是二维数组的列。这样就完成了动态数组的分配。伪代码:ParrayRow =动态分配行数组指针,即动态分配指针数组。for(i = 0; i #include #include #include #include char **array_.. 阅读全文
摘要:
C Standard LibraryContents : Diagnostics : Character Class Tests : Error Codes Reported by (Some) Library Functions : Implementation-defined Floating-Point Limits : Implementation-defined Limits : Locale-specific Information : Mathematical Functions : Non-local Jumps : Signals : V... 阅读全文
摘要:
今日阅读一本不错的书,叫《C语言深度解剖》 做一些读书笔记: 关于register修饰符注意点:虽然寄存器速度非常快,但是用register修饰符也有一些限制的:register变量必须是能被CPU寄存器所接受的类型。意味着register变量必须是一个单个的值,并且其长度应小于或者等于整型的长度。而且register变量可能不存放在内存中,所以不能用取地址运算符“&”来获取register变量的地址。 关于sizeof:sizeof在计算变量所占空间大小时,括号可以省略,而计算类型(如int)大小时不能省略。一般情况下,不要偷懒,乖乖加上括号,继续假装它是一个函数。严重提醒,size 阅读全文
摘要:
今天发现Eclipse的一个BUG 就是在输入函数scanf后,发现前面的东西都不能打印在console里边,只有先输入东西以后才行,上网搜索以后发现一个帖子。 Nikos Panagos wrote: Hello everybody, Theeclipse console has weird behaviour when used for input with Cprograms.I teach C to first year undergraduates and I want them to learntheir way through eclipse. But the small si. 阅读全文
摘要:
用sprintf函数出现了点问题,上网学习了一下 下面是笔记 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [, argument] ...);除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:格式化字符串上。prin... 阅读全文
摘要:
今天遇到一个问题,下面这个程序:#include void main(void){int a;char c ='a';scanf("%c",&a);printf("asdfasdf %c\n",a);scanf("%c",&c);printf("asdfasdf %c\n",c);} 看起来好像很简单,但是我在VC和在GCC编译以后,都遇到一个问题。就是在执行到红色的语句的时候,直接跳转到后边的printf。意思就是直接跳过了scanf。为什么会这样呢? 经过上网搜索和询问super 阅读全文
摘要:
配置GNURADIO的软件平台在UBUNTU10.4下配置的总算弄完了下面写写总结1. 去http://gnuradio.org/点击Getting Started2. 按照英文步骤一步步做,我出现点问题,我用git的时候,搞下来的GNURADIO估计是不稳定版本,编译不过,然后我直接去download一个gnuradio3.3.0的稳定版本,解压后make,通过。3. 按照网上,测试一下,打开gnuradio-companion,无奈出现:Error: "ImportError: libgnuradio-core-3.3.0.so.0: cannot open shared obj 阅读全文