C语言经验技巧.doc

上传人:sk****8 文档编号:3550824 上传时间:2019-06-04 格式:DOC 页数:10 大小:58.50KB
下载 相关 举报
C语言经验技巧.doc_第1页
第1页 / 共10页
C语言经验技巧.doc_第2页
第2页 / 共10页
C语言经验技巧.doc_第3页
第3页 / 共10页
C语言经验技巧.doc_第4页
第4页 / 共10页
C语言经验技巧.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、C 语言经验技巧 位运算 没有任何输入 scanf(“%*c%d,data“); 代表前一个不予读入,跟着%是输出%,再输入整数类型 data do/while 循环语句 do 语句 while (条件) ; /*注意 do/while 循环语句结尾一定要加上分号;*/ 还有就是 do/while 和其它编程语言的不同,它的条件不是直到真才退出,而是当真是才 退出。不过我们可以动些手脚,小技巧将它改为直到条件才退出,就是将条件改为逻辑非 求位数 main() long num=1234567,n; n=(num%1000000)/100000; /* 求余数再除 */ printf(“%d“,

2、n); 例:(num%1000000)/100000 求十万位 (num%1000)/100 求十位 经过上例引出如果想得到什么位的就余想求的数再除以该位数,不过数据类型一定为正 数。 求得扫描码 ESC 0x11b UP 0x4800 DOWN 0x5000 LEFT 0x4b00 RIGHT 0x4d00 如果想知到键盘的数据码就要用到 bioskey(0) /*/ bioskey 函数 函数原型: int bioskey(int cmd); 函数功能: 利用函数 bioskey 可以实现三种功能,参数 cmd 为要实现的功能号,值只能为 0、1、2,具 体含义如下: 0:在系统中有一个按

3、键队列,所有的键盘按键都在这里排成队。该功能就是如果按键队 列中有按键,那么读取队列首位的按键,并返回按键值;否则等待键盘按键出现。( 其 中按键值的高字节为扫描码,低字节为 ASCII 码) 1:如果按键队列中没有按键,那么返回零,否则返回非零。 2:返回特殊按键 Shift、Ctrl、Alt 等键的按键状态。 /*/ #include #include int specialkey(int key2); main() int key2=0,0; printf(“扫描码 ASC码n“); for(;) specialkey(key); if(key0|key1) printf(“ %d “,

4、key0); printf(“%d n“,key1); if(key0=1)exit(1); specialkey(int key2) if(bioskey(1)key0=0;key1=0;return; key0=key1=bioskey(0); key0=8; /*高八位落到底八位*/ key1 /*高八位清零 0xff00 这个是底八位清零 */ 0xff = ff16 = 111111112 等待函数 delay(5000); /*参加单位微秒,这个函数通常都不精确*/ sleep(5); /*参加单位秒,比较精确 */ 几个常用的循环 for(;) : : /*没条件循环*/ whi

5、le() : : /*没条件循环*/ while(c=getch()!=n) : : /*这个是通常用来循环赋值给字符数组,直到回车才停止*/ while(*py!=0) printf(“%c“,*py+); /*同样也可以用 pritnf(“%s“,py); 随机函数 #include randomize(); /*随机种子*/ random(10); /*值为十之内的数 */ 另一种 #include srand(); rand()%10; /返回值为 32767 ,通过取余运符号变为十之内的数*/ 比如: #define N 10 /*N 取 1-32767 范围内,可以相应的求出最高数

6、值, N 为 10 就得最高数为 9 ,N 为 6 就最高数为 5。 main() int x; srand(time(NULL); x=rand()%N+1; printf(“the random number is :%d“,x); scanf();和 gets();字符输入函数的比较 scanf(“%s“,s);这个函数不可以输入有空格的字符串,因为输入空格就代表着输入另一 个格式变量了。 gets();这个函数就可以输入有空格的字符串,不过一次只可以输入单一个变量的值。 const 的一个好用处(函数形参) void deal(const int 13,const char * );

7、const 的作用是不改变传入的实参数 几个常用输入字符函数的比较 getch(void) c=getch(); /*返回从键盘读入的字符,不显示出来*/ getche(void) c=getche(); /*返回从键盘读入的字符,显示出来 */ C 语言里 “%n“是什么意思 是储存 Printf 中前面的字符个数 int i,j; printf(“Andywu%nGPAStudio%n“, printf(“%d,%d“,i,j); /*那么输出的就是 6 和 9*/ 通过 bioskey(1);来到实现不执行当前的命令而跳往下一条命令 #include #include #include

8、main() int key; int i; for(;) if(bioskey(1)!=0) /*就是这个函数的主要功能了*/ key=bioskey(0); if(key gotoxy(40,30); printf(“%d“,i+); if(key=27) break; gotoxy(50,40); cputs(“结束“); getch(); kbhit()函数的,用来判断当前是否按下键 while(!kbhit() /*kbhit(); */ printf(“%d“,i); delay(1000); 数组指针 int (*p)4; 是定义一个指向四个元素的数组指针 main() int

9、a4; int (*p)4; int count; p=a; for(count=0;count8; /*否非则是向下移动八位取得高八位的扫描码*/ 动态伸请数组 我们定义一个数组常常是规定了其长度,如果定义得少就不够用,定义得多了就会浪费 空间,那么我们怎么来控制这种场面呢?是有方法的,因为不是太直观所以都没有常用 。 int *ab; ab=(int *)malloc(n*sizeof(int); /*n 这里是变量,随自己输的*/ 这样就生成了一个指向 n 个空间的新地址,赋给了 ab,ab 就为首地址,像我们平时用数组 一样的形式调用第几个元素 ab0;/*这里是第一个元素 */ ab

10、1;/*第二个元素*/ 其实当然也可以算指针的形式一样*(ab+0)和 *(ab+1)一样来到调用。 更灵活的一点就是不用的空间可以随时给删除,用 free()这个函数 free(ab);这里只是删除当前 ab 指向的那个空间,而不是全部删除,知道了这点我们就 可以利用循环等其它方法来批量删除或其它特别的用途,这完全要靠自己的想象力了。 神秘函数 getpass(); #include main() char *password; password=(char *)getpass(“Please input the number“); /*这里输入不能显示出屏幕 */ printf(“%s“,

11、password); 这个函数可以用来做密码保护功能 指针的类型和指针所指向的类型 通常我们都很容易搞错这两个概念,因为就看上去好像就是一样吗。可是真正运用起来 就有很大的区别,就像下面的一个例子吧。 main() int *p; /*这里定义的是一个整数的指针*/ char c=“ynynynynyn“; int i; p=c; /*这里将字符数组的地址传了给整型指针*/ for(i=0;i5;i+) printf(“%c“,*p+); /*结果这里输出的是 5 个 y 是因为整型指针相对移动地址是2 字节, 而字符是一字节的,所以跳过了一个字符*/ getch(); exit(0)和 exit(1)的区别 其实这也没有什么特别的,不过是从书上看回来,现在记录下来。 exit(0); /*这个是正常的关闭所有程序 */ exit(1); /*这个就刚好相反,有错误的关闭 */ time_t 和 clock_t 的数据类型 time_t 通常用来记录时间的类型,其实它只是长整型数据, 可以在 time.h 头文件来看到,如下是它的定义; typedef long time_t; typedef long clock_t;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。