C语言
xinyizhangwei
这个作者很懒,什么都没留下…
展开
-
两个C语言编程细节
1,scanf()函数,用户在输入完成后,总会输入回车键,这里便产生了一个‘\n’,如果这个时候,后面有gets()或getchar()函数,就会把这个'\n‘读入,造成错误,而这个错误往往很难发现。所以,一般在这种情况下,需要消除这个'\n’的影响,可以加上语句:while((ch=getchar())!=NULL &&ch!='\n') ;这个语句就是把‘\n'包括可能出现的空格,制表等符号消原创 2013-11-18 15:16:47 · 340 阅读 · 0 评论 -
结构体数据读入常出现的错误的解决办法
#include#include#include#define MAXTITL 40 #define MAXAUTL 40 #define MAXBKS 100struct book{ char title[MAXTITL]; char author[MAXAUTL]; float value;};int main(void){ struct book librar原创 2013-11-13 21:16:24 · 606 阅读 · 0 评论 -
结构体和文件的共同操作的一个小例子
#include#include#define MAXTITL 40#define MAXAUTL 40#define MAXBKS 10struct book{ char title[MAXTITL]; char author[MAXAUTL]; float value;};int main(void){ struct book library[MAXBKS]; F原创 2013-11-14 11:46:33 · 481 阅读 · 0 评论 -
算法的重要性
今天看了一篇关于算法的文章,是李开复老师写的,很不错,在整个计算机系统里,算法无疑是非常重要的! 算法的力量算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实大家都被这些公司误导了。编原创 2013-11-14 15:50:38 · 485 阅读 · 0 评论 -
哈希表
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 hash表,有时候也被称为散列表。个人认为,hash表是介于链表和二叉树之间的一种中间结构。链表使用十分方便,但是数据查找十分麻烦;二叉树中的数据严格有序,但是这是以多一个指针作为代价的结果。hash表既满足了数据的查找方便,同时不占用太多的内容空间,使用也十分方便。原创 2013-12-30 09:38:07 · 350 阅读 · 0 评论 -
const volatile int i=10;这行代码有没有问题?如果没有,那 i 到底是什么 属性?
没有问题,例如只读的状态寄存器。它是volatile,因为它可能被意想不到地改变;它是const,因为程序不应该试图去修改它。volatile和const并不矛盾,只是控制的范围不一样,一个在程序本身之外,另一个是程序本身。转载 2013-12-23 09:52:44 · 475 阅读 · 0 评论 -
声明和定义的区别
声明就是指给除了当前变量或者函数,或者类什么的名字,不给其中的内容,就是先告诉你有这样一个什么类型的变量或者函数,但是这个变量或者函数的具体信息却是不知道的。就好比跟你介绍一个人的时候,声明就是只告诉你这个人叫什么,但是缺不给你说这个人到底怎么样,他有哪些优点,缺点,喜好问题是什么的。 定义就不一样了,定义直接告诉你了所有的东西,这个变量是什么,这个函数是什么功能,这转载 2013-12-23 09:43:54 · 341 阅读 · 0 评论 -
内存对齐
一.内存对齐的初步讲解内存对齐可以用一句话来概括:“数据项只能存储在地址是数据项大小的整数倍的内存位置上”例如int类型占用4个字节,地址只能在0,4,8等位置上。例1:#include struct xx{ char b; int a; int c; char d;};转载 2013-12-23 10:09:03 · 301 阅读 · 0 评论 -
数组a[10]的首地址:a,和&a的异同
对于以下代码:#includevoid main(){ int a[5]={1,2,3,4,5};int *ptr=(int *)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));}输出为:2,5而对于#includevoid main(){ int a[5]={1,2,3,4,5};int *ptr=(int原创 2013-12-23 16:35:02 · 922 阅读 · 0 评论 -
C语言中的接续符:"\"
C 语言里以\表示断行,编译器会将\剔除掉,跟在\后面的字符自动接续到前一行。注意:反斜杠之后不能有空格(否则编译不过),反斜杠的下一行之前也不能有空格,否则空格也连进去了,且看如下程序:#includeint main(){ char str1[] ="abc\ def"; char str2[] ="abc\def"; printf("%s\n", s转载 2013-12-23 15:36:31 · 2391 阅读 · 0 评论 -
静态链接的过程
程序设计的模块化是程序员们一直在追求的目标,因为当一个系统十分复杂时,我们不得不将一个复杂的系统逐步分割成小的系统以达到各个击破的目的。复杂的软件也是如此,程序员把每个源代码模块独立的编译,然后按照需要将它们组装起来,这个组装模块的过程就是链接。链接的主要内容就是把各个模块之间相互引用的部分都处理好,使得各个模块之间能够正确地链接,链接过程主要包括地址和空间分配,符号决议和重定位等步骤。链接过程如转载 2013-12-27 16:44:26 · 346 阅读 · 0 评论 -
“烫烫烫”。。。。。
[VC][内存]关于“烫烫烫”和“屯屯屯” 2011-11-30 01:29:09| 分类: [C++] | 标签:c++ ctr 运行时 vc 编译器 内存管理 |字号 订阅一、开始刚从围脖看到一个烫烫烫的笑话,比较累了,简单来一下。 二、大概情况当你编译处于Debug模式下的Visual Studio转载 2013-12-23 10:23:33 · 768 阅读 · 0 评论 -
关于DSP中CMD文件和CCS的使用
今天做了一个信号发生并和信号卷积的复制去Google翻译翻译结果原创 2014-05-12 10:48:23 · 595 阅读 · 0 评论 -
关于C语言中的全局变量和局部变量
很多理论,停留在课本上时,理解真的不是很深刻,而只有应用到实践和工程中时,才能比较彻底地明白其中的道理。 关于全局变量,和局部变量,就是一个典型,如果你想寄存器里的东西长久保持,那么就用全局变量,而你想寄存器里的东西一个周期之后就消解,那么请务必使用局部变量。原创 2014-03-10 22:45:35 · 482 阅读 · 0 评论 -
一个文件的小程序
#include#include#include#includeint main(int argc,char *argv[]){ FILE *fp1; FILE *fp2; char ch1; char ch2; int i=1; int j=1; if((fp1=fopen(argv[1],"r"))==NULL) { printf("Can't open原创 2013-11-13 17:13:14 · 464 阅读 · 0 评论 -
_CRT_SECURE_NO_WARNINGS的处理方式(转)
问题:我们在程序中使用fopen等CRT函数,就会出现一些警告信息,很烦人,如下: 1>e:/project/htt/ishow/functions.cpp(156) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disabl原创 2013-11-13 14:39:45 · 584 阅读 · 0 评论 -
关于文件的操作
#include#include#includeint main(int argc,char *argv[]){ FILE *fp; char ch; long int count=0; if(argc!=2) { printf("Usage: %s filename\n",argv[0]); exit(1); } if((fp=fopen(argv[1],"r")原创 2013-11-13 10:32:26 · 453 阅读 · 0 评论 -
关于scanf()函数(百科)
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。如:1scanf("%d,%d", &a, &b);如果a和b都被成功读入,那么scanf的返回值就是2如果只有a被成功读入,返回值为1如果a和b都未被成功读入,返回值为0如果遇到错误或遇到end of原创 2013-11-19 22:01:44 · 553 阅读 · 0 评论 -
模拟伯努利分布的C语言程序(算法)
//模拟伯努利实验:这里,假设N=32 M=1000即表示抛硬币32次记录正面向上的次数的这样一个实验重复1000次。然后记录次数分别为0到32的次数。#include#includeint heads(){ return (rand()<RAND_MAX/2);//RAND_MAX是头文件中的一个常量}main(){ int i,j; int cnt; int N,M;原创 2013-11-19 22:10:12 · 950 阅读 · 0 评论 -
关于链表的理解
链表是我比较头疼的一个问题,看到那么多的指针指来指去的,可以按照源程序来一步一步,倒是可以理解,可一旦自己来编程就不知道如何安排循环体了。今天,找到了一个辅助的方法和一个小小的原则,应该可以对链表的程序编写有所帮助。原则:1:循环体的安排,就是要经过这一步之后,各个指针回到和原来一样的安排方式!!!!比如,有三个指针分别指向三个节点,因此,循环体中的的程序执行完一遍原创 2013-11-20 22:27:34 · 489 阅读 · 0 评论 -
字符串查找
//This program is designed to find how many a string appears in the file named ..txt.#include#include#include#define ROUTE "C:\\LICENSE.TXT"//the route of your destination file#define STR "the" /原创 2013-11-22 11:01:05 · 371 阅读 · 0 评论 -
使用邻接表实现的无向图
#include#include#define V 8typedef struct node* link;struct node{ int item; link next;};link NewNode(int ,link);main(){ int i,j; link adj[V]; for(i=0;i<V;i++) { adj[i]=NULL; } prin原创 2013-11-22 15:53:24 · 507 阅读 · 0 评论 -
约瑟夫问题的C语言求解
//assuming that there are N people here in a circle and every Mth people is killed untill the last man.//Then who will be alive.//This program is aimed to solve this problem.#include#includetyp原创 2013-11-20 16:43:23 · 615 阅读 · 0 评论 -
如何判断输入的是数据而不是其他的东西呢?
如何判断输入的是数据而不是其他的东西呢? (用C语言)原创 2013-11-07 10:31:11 · 321 阅读 · 0 评论 -
多维数组做形参
1、声明N维数组的指针时,除了第一维大小可以留空外,其它都需要填写数值。例如int fun(int arr[][2][5][3],int rows); 或者int fun(int (*arr)[2][5][3],int rows); 如果不需要用到第一维大小,rows可以不要,但如果要知道整个数组大小,就必须把rows作为参数传给函数,或者使用全局变量记录第一维大小。当然,也可以不原创 2013-11-11 11:13:23 · 543 阅读 · 0 评论 -
一个小程序的总结--关于数组
写了一个小程序:#include#include //for using system("pause")#include //for using exit(1)#includevoid input_func(int rows,int cols,double arr[3][5]);void average_row(int rows,int cols,double原创 2013-11-11 17:07:05 · 495 阅读 · 0 评论 -
关于一句代码的解释(c primer plus一书中的错误)
total+=*start++;说明:start是一个指针,这句代码中,*和++运算符具有相同的优先级,但是,这里按照从从右向左的顺序执行代码,不过,运行时,是先将start指针指向的值与total相加,然后指针自增1,如果换成total+=*++start;则先指针start自增1,然后将所指向的值与total相加赋给total。原创 2013-11-11 10:11:35 · 611 阅读 · 0 评论 -
字符串的一句话概要
C字符串是以一串以空字符‘\0‘结束的char类型值。原创 2013-11-12 10:56:29 · 267 阅读 · 0 评论 -
数组和指针的差别
数组和指针有什么差别呢???最重要的差别从下面的一句代码来说明:char heart[]="I love Tillie!";char *head="I love Tillie!";主要差别是:heart是个常量,而指针head是个变量。实际使用中,首先,两者都可以使用数组符号,都可以使用指针加法,但是只有指针可以使用自增运算符。可以这样来类比,在这两句代码中,hear原创 2013-11-11 19:37:03 · 446 阅读 · 0 评论 -
字符串
双引号中的字符是字符串常量,并被看做是地址!!原创 2013-11-11 20:22:17 · 415 阅读 · 0 评论 -
Matlab Coder的使用方法以及VS2010的使用
关于matlab的使用Mhttp://jingyan.baidu.com/article/8065f87fe146332331249898.html复制去Google翻译翻译结果原创 2014-06-03 10:52:26 · 807 阅读 · 0 评论