• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






hao02171990

记录点滴的自我。
 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

随笔分类 -  C 语言基础学习

上一页 1 2 3 下一页

the basic c language
 
指针和引用的比较
摘要:在C语言中有指针的概念,但是在C++中有引用的应用;由于都与取地址符号有关系,所以显得指针和引用十分相似首先说明一点,在函数调用时有三种调用方式{值传递,指针传递(地址传递),引用传递}三方式具体实现: 主调函数 被调函数1,fun(n) fun(int m) //实现将n的值直接传给m,实现值传递的效果2,fun(&n) fun(int *n) //将n的地址值传递给p,实现地址值的传递3,fun(n) fun(int &m) //将n的存储变量起了一个别名为m,实现两个名字代表一个变量的效果下面详细说明这两个的区别: 指针与引用看上去完全不同(指针用操作符“*... 阅读全文
posted @ 2013-04-14 16:57 某某郝 阅读(163) 评论(0) 推荐(0)
fread函数和fwrite函数,read,write
摘要:fread函数和fwrite函数1.函数功能用来读写一个数据块。2.一般调用形式fread(buffer,size,count,fp);fwrite(buffer,size,count,fp);3.说明 (1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。 (2)size:要读写的字节数; (3)count:要进行读写多少个size字节的数据项;//1代表二进制 (4)fp:文件型指针。注意: 1 完成次写操(fwrite())作后必须关闭流(fclose()); 2 完成一次读操作(fread())后,如果没有关闭流(fclose 阅读全文
posted @ 2013-04-11 17:22 某某郝 阅读(1166) 评论(0) 推荐(0)
C语言中条件编译命令(#if #else #endif)
摘要:条件编译预处理程序提供了条件编译的功能。 可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件。这对于程序的移植和调试是很有用的。 条件编译有三种形式,下面分别介绍:1. 第一种形式:#ifdef 标识符程序段1#else程序段2#endif它的功能是,如果标识符已被 #define命令定义过则对程序段1进行编译;否则对程序段2进行编译。如果没有程序段2(它为空),本格式中的#else可以没有,即可以写为:#ifdef 标识符程序段 #endif#define NUM okmain(){struct stu{int num;char *name;char sex;float sco 阅读全文
posted @ 2013-04-11 16:59 某某郝 阅读(1304) 评论(0) 推荐(0)
结构体指针在函数调用中的实例
摘要:#include<stdio.h>#define N 4#include<string.h>#define FMT "%5d %-11%5d%8d%8d%10.1f\n"struct st{ int num; char name[3]; int s[3]; float aver;};void input(struct st *p){ scanf("%d#s%d%d%d",&p->num,p->name,&p->s[1],&p->s[2]); p->aver=(p->s[0 阅读全文
posted @ 2013-04-11 16:45 某某郝 阅读(863) 评论(0) 推荐(0)
结构体指针
摘要:我说所有指针使用前都必须初始化,结构体中的成员指针也是一样有人反驳说,不是吧,以前做二叉树算法时,他的左右孩子指针使用时难道有初始化吗那时我不知怎么的想不出理由,虽然我还是坚信要初始化的过了几天这位同事说他试了一下,结构体中的成员指针不经过初始化是可以用(左子树和右子树指针)那时在忙着整理文档,没在意今天抽空调了一下,结论是,还是需要初始化的。而且,不写代码你是不知道原因的(也许是对着电脑久了IQ和记性严重下跌吧)测试代码如下C代码#include#include#includestructstudent{ char*name; intscore; structstudent*next; }s 阅读全文
posted @ 2013-04-11 16:23 某某郝 阅读(313) 评论(0) 推荐(0)
getchar()函数getch()函数区别
摘要:getch(): 所在头文件:conio.h 函数用途:从控制台读取一个字符,但不显示在屏幕上例如: char ch;或int ch; getch();或ch=getch(); 用getch();会等待你按下任意键,再继续执行下面的语句; 用ch=getch();会等待你按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。getchar():该函数声明在stdio.h头文件中,使用的时候要包含stdio.h头文件。如: #include<stdio.h> int getchar(void);getch与getchar基本功能相同,差别是getch直接从键盘.. 阅读全文
posted @ 2013-04-11 16:03 某某郝 阅读(320) 评论(0) 推荐(0)
C语言文件操作函数(ANSI)详解(二)
摘要:clearerr(清除文件流的错误旗标)相关函数 feof表头文件 #include<stdio.h>定义函数 void clearerr(FILE * stream);函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。返回值 fclose(关闭文件)相关函数 close,fflush,fopen,setbuf表头文件 #include<stdio.h>定义函数 int fclose(FILE * stream);函数说明 fclose()用来关闭先前fopen()打开的文件。此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。 阅读全文
posted @ 2013-04-10 20:52 某某郝 阅读(312) 评论(0) 推荐(0)
C语言文件操作函数(ANSI)详解(一)
摘要:在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。一、流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:typedef struct {int level; /* fill/empty level of buffer */unsigned flags; /* File status flags */char fd; /* File descriptor */unsigned char hold; /* Ungetc char if no buffer */int bsize; /* Buffer size. 阅读全文
posted @ 2013-04-10 20:49 某某郝 阅读(856) 评论(0) 推荐(0)
指针函数
摘要:顾名思义,指针函数即返回指针的函数。其一般定义形式如下:类型名*函数名(函数参数表列);其中,后缀运算符括号“()”表示这是一个函数,其前缀运算符星号“*”表示此函数为指针型函数,其函数值为指针,即它带回来的值的类型为指针,当调用这个函数后,将得到一个“指向返回值为…的指针(地址),“类型名”表示函数返回的指针指向的类型”。“(函数参数表列)”中的括号为函数调用运算符,在调用语句中,即使函数不带参数,其参数表的一对括号也不能省略。其示例如下:int *pfun(int, int);由于“*”的优先级低于“()”的优先级,因而pfun首先和后面的“()”结合,也就意味着,pfun是一个函数。即: 阅读全文
posted @ 2013-04-10 11:51 某某郝 阅读(205) 评论(0) 推荐(0)
函数调用二维数组例子
摘要:#include<stdio.h>fun(int*p,int n,int m) { int*i,*j; i=p+n*m; for(;p<i;p+=m ) { for(j=p;j<p+m;j++) printf("%6d",*j); printf("\n"); } printf("\n"); } void main( ){ in... 阅读全文
posted @ 2013-04-10 11:00 某某郝 阅读(691) 评论(0) 推荐(0)
ASCII\UNICODE编码的区别
摘要:从ASCII编码谈起: 我们需要了解的最早编码是ASCII码。它用7个二进制位来表示,由于那个 时期生产的大多数计算机使用8位大小的字节,因此用户不仅可以存放所有可能的ASCII字符,而且有整整一位空余下来。如果你技艺高超,可以将该位用做自 己离奇的目的:WordStar中那个发暗的灯泡实际上设置这个高位,以指示一个单词中的最后一个字母,同时这也宣示了WordStar只能用于英语文 本。 由于字节有多达8位的空间,因此许多人在想:“呀!我们可以把128~255之间的编码用做个人的应用目的。”问题在于,同时产生这种想法的人相当多, 而且在128~255之间的各个位置上应该存放什么这一问题上,.. 阅读全文
posted @ 2013-04-09 20:21 某某郝 阅读(457) 评论(0) 推荐(0)
C语言 二维数组做函数参数的几种情况
摘要:(1)实参为数组元素地址,虚参为元素类型指针(a)调用函数:fun(*a,3*4);//*a也可为a[0] or &a[0][0]函数: fun(int *p,int n)//*p也可为p[]{p[i] or *(p+i) }(b)调用函数:fun(*a,3,4);//*a也可为a[0] or &a[0][0]函数: fun(int *p,int m,int n) //*p也可为p[] {*(p+i*n+j)} (2)实参为数组名,虚参为指向行的指针调用函数:fun(a,3);//a也可为&a[0]函数:fun(int (*p)[4],int m) //(*p)[4]也 阅读全文
posted @ 2013-04-09 19:52 某某郝 阅读(343) 评论(0) 推荐(0)
c语言中break与continue的区别
摘要:break 关键字很重要,表示终止本层循环。现在这个例子只有一层循环,当代码执行到break 时,循环便终止。如果把break 换成continue 会是什么样子呢?continue 表示终止本次(本轮)循环。当代码执行到continue 时,本轮循环终止,进入下一轮循环。while(1)也有写成while(true) 或者while(1==1) 或者while((bool) 1)等形式的,效果一样。do-while 循环:先执行do 后面的代码,然后再判断while 后面括号里的值,如果为真,循环开始;否则,循环不开始。其用法与while 循环没有区别,但相对较少用。for 循环:for 循 阅读全文
posted @ 2013-04-09 19:28 某某郝 阅读(277) 评论(0) 推荐(0)
利用指针对二维数组进行遍历查找程序
摘要:1 #include<stdio.h> 2 #define TURE 1 3 #define FALSE 0 4 5 int find_char(char** strings,char value) 6 { 7 char *string; 8 /*对于每一行字符串进行遍历查找*/ 9 while((string=*strings++)!=NULL) //strings指的是行的指针10 {11 12 //进行查找在这一行内找我们指定的字符串13 while(*string!='\0') ... 阅读全文
posted @ 2013-04-09 17:24 某某郝 阅读(381) 评论(0) 推荐(0)
将字符串s1复制到字符串s2。
摘要:main( ){ char s1[ ]=“copy string”, s2[30];char *p1=s1, *p2=s2;int i;for ( ; *p1!=‘\0’; p1++,p2++) *p2=*p1;*p2=‘\0’;printf(“string s2=”);for (i=0; s2[i]!=‘\0’; i++) printf(“%c”, s2[i]); printf(“\n”); } 程序运行结果为: string s2=Copy string 阅读全文
posted @ 2013-04-09 10:58 某某郝 阅读(1218) 评论(0) 推荐(0)
常见的C语言错误及程序的调试
摘要:c常见的C语言基本错误 1,在定义变量时未声明,就直接使用(一般变量是先声明再定义) 先 int i; i=3; 2,输出数据的格式和变量定义的格式不相同,导致数据的输出出现问题; 如:a=3, b=4.5; printf("%f %d\n",a,b); 该程序会导致运行时出现错误;输出结果会有一定的不同。 3,在定义变量时 会出现范围的限制,不要超出定义范围即可,如整形定义的范围是(-32768—32767) 所以不能给一个变量赋值为超出这个范围的数值。 4,在scanf函数中定义变量的地址值; 如:scanf("%d... 阅读全文
posted @ 2013-04-09 10:41 某某郝 阅读(549) 评论(0) 推荐(0)
feof:检测文件结束符函数
摘要:函数原型:int feof(FILE *fp);头文件:#include<stdio.h>是否是标准函数:是函数功能:检测流上的文件结束符,即:检测文件是否结束。应用该函数可以判断一个文件是否到了结尾。在读取一个未知长度文件时,这个函数很有用。返回值:遇到文件结束符返回非0,否则返回0。例程如下::检测文件结束标志演示。#include <stdio.h>int main(void){ FILE *stream; /* 以只读方式打开test.txt文件 */ stream = fopen("test.txt", "r"); /* 阅读全文
posted @ 2013-04-08 19:12 某某郝 阅读(418) 评论(0) 推荐(0)
一个磁盘信息向另一个磁盘信息的复制
摘要:#include<stdio.h>#include<stdlib.h>void main(){ FILE* inputfp,*outputfp; char ch,inputfilename[10],outputfilename[10]; scanf("%s,%s",inputfilename,outputfilename); inputfp=fopen(inputfilename,"wr"); outputfp=fopen(outputfilename,"w"); if(inputfp==NULL) { pri 阅读全文
posted @ 2013-04-08 11:36 某某郝 阅读(133) 评论(0) 推荐(0)
对于文件操作函数的记录
摘要:fopen函数 1, 可以运用#define进行函数的声明,将函数声明为其他的函数名,例如#define putchar(ch) fputc(ch,fp);语句将函数定义为其他的函数名 2,利用该函数在没有文件名的情况下可以创建文件,不需要进行创建函数的调用。 例子代码如下:#include<stdio.h>#include<stdlib.h>void main(){ FILE * fp; char ch,filename[10]; scanf("%s",filename); //定义了文件函数的名称 fp=fopen("filename& 阅读全文
posted @ 2013-04-08 10:39 某某郝 阅读(163) 评论(0) 推荐(0)
C语言下的文件操作语句
摘要:C语言下的文件操作函数(打开,关闭,读写,文件的定位,文件出错的检测) 函数名:fopen原型:FILE *fopen(const char *path, const char *mode)功能:打开文件流参数:path 要打开的文件mode 打开模式,取值如下。r 以只读方式打开文件。如果打开成功,则返回的文件指针指向文件流的开头。r+以读写方式打开文件。如果打开成功,则返回的文件指针指向文件流的开头。w 以只写方式打开文件。如果文件存在,则打开文件的同时,清空原文件内容;如果文件不存在,则建立该文件。返回的文件指针都指向文件流的开头。w+以读写方式打开文件。如果文件存在,则打开文件的同时, 阅读全文
posted @ 2013-04-07 22:11 某某郝 阅读(373) 评论(0) 推荐(0)
 

上一页 1 2 3 下一页