工作第一
作者:分类:默认分类标签:
最近重点研究的一个网站:http://vim.growup.net.cn/doku.php[1](开复网前老大vim的站点)[2]闽江学院学生系统:(网上查成绩和个人信息)http://211.80.208.12[3]福建省毕业生就业公共网:(帐号:11316+学号) http://www.fjbys.gov.cn[4]www.chsi.com.cn[5] 修改确认个人信息海峡人才网:http://www.hxrc.com/[6]福建IT人才网:www.fjitjob.com[7]就业指导中心:http://mjcareer.mju.edu.cn/index.asp[8][9][10]
kbhit
作者:分类:默认分类标签:
原型:extern int kbhit(void); 用法:#include 功能:检测按键 说明:检测键盘是否有键按下。 如果有键按下,则返回对应键值;否则返回零。 kbhit不等待键盘按键。无论有无按键都会立即返回我的体会:1,由于该函数不等待按键,可以实现需要两线程的功能:一边做某事,随时监听按键。这就实现了getch () 无法实现的功能。2,无键按下时,返回零;有键按下时,返回的不是键值,而是 -1。3,要取得键值,可以在循环里用 getch() 来接收。这似乎有点奇怪。但确实可以。while(1){ ...... if(kbhit) { c=getch(); ...... }}
将一个字符串从一个函数传递到另一个函数,可以用地址传递的办法,即用字符数组名作参数或用指向字符的指针变量作参数。在被调用的函数中可以改变字符串的内容,在主调函数中可以得到改变了的字符串。(1)用字符数组作形参和实参。#include <iostream.h>void ppt(char k[]){ int i; for(i=0;k[i]!='';i++) { cout<<k[i];} cout<<endl;}int main(){ char p[]="china"; ppt(p); return 0;}注意参数的形式:形式参数char k[],实际参数p(数组名)(2)字符数组作形参,字符指针变量作实参。#include <iostream.h>void ppt(char k[]) { int i; for(i=0;k[i]!='';i++) { cout<<k[i]; } cout<<endl;}int main(){ char *p="china"; ppt(p); return 0;}(3)字符指针变量作形参,字符数组作实参。#include <iostream.h> void ppt(char *k){ int i; for(i=0;*(k+i)!='';i++) { cout<<*(k+i); } cout<<endl;}int main(){ char p[]="china"; ppt(p); return 0;}注意:1,函数ppt中的
关于指针变量的赋值
作者:分类:默认分类标签:
指针变量的特殊性在它只能被赋予一个地址,而不能赋予一个数。#include int main(){ int *p,a=0; //p=0x0012FF78; 这是错误的,编译无法通过p=&a; cout<< return 0;}结果是:0x0012FF78这是a的地址。我们可能会想,既然这是地址,那把它直接赋予p好了,如注释的那句,然而这是错的,编译无法通过。于是我们的结论是,指针变量只能赋予地址,而且只能通过如下方式把地址赋予一个指针变量:1,用取地址符号&来获得变量地址。如:int a,*pa;pa=&a;2,把一个指针变量的值赋予指向相同类型变量的另一个指针变量。如:int a,*pa=&a,*pb;pb=pa; 3,把数组首地址赋予指针。如:int *p,k[5];p=k;//或者p=&k[0];4,把字符串首地址赋予字符指针变量。如:int *p="abcde";5,把函数的入口地址赋予指向函数的指针变量。例如: int (*pf)();pf=f; /*f为函数名*/
一,访问字符串的两种方法。1,字符数组:用字符数组存放一个字符串,然后输出。 char str[]="china"; printf("%sn",str);结果是:china说明:(1)str是数组名,它代表字符数组首元素的地址。(2)%s的规则是:从某个首地址开始,输出整个字符串,直到遇到‘’。(3)‘’在哪里?‘’是在定义并初始化数组时(char str[]="china";),系统自动加在数组末尾(即str[5]这个元素)的,我们可以用以下方式查看:printf("%dn",str[5]);结果是:0‘’的ASCII码就是0,所以str[5]==0.如果还不放心,可以这样查看:for(i=0;i<=6;i++) printf("%d ",str[i]);结果是:99 104 105 110 97 0 -52前5个数正好是“c、h、i、n、a”的ASCII码,然后是‘’,最后一个是无意义的随机数(注意数组越界了)。(4)str可以用&str[0]代替,结果一样。 printf("%sn",&str[0]);2,字符指针:用字符指针指向
本章小结
作者:分类:默认分类标签:
1. 指针是C语言中一个重要的组成部分,使用指针编程有以下优点:(1)提高程序的编译效率和执行速度。(2)通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯。(3)可以实现动态的存储分配。(4)便于表示各种数据结构,编写高质量的程序。2. 指针的运算(1)取地址运算符&:求变量的地址(2)取内容运算符*:表示指针所指的变量(3)赋值运算·把变量地址赋予指针变量·同类型指针变量相互赋值·把数组,字符串的首地址赋予指针变量·把函数入口地址赋予指针变量(4)加减运算对指向数组,字符串的指针变量可以进行加减运算,如p+n,p-n,p++,p--等。对指向同一数组的两个指针变量可以相减。对指向其它类型的指针变量作加减运算是无意义的。 (5)关系运算指向同一数组的两个指针变量之间可以进行大于、小于、 等于比较运算。
main函数的参数
作者:分类:默认分类标签:
  前面介绍的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为: main (argc,argv)int argv;char *argv[];或写成:main (int argc,char *argv[])  由于main函数不能被其它函数调用, 因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去
指针数组作指针型函数的参数
作者:分类:默认分类标签:
main(){static char *name[]={ "Illegal day","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};char *ps;int i;char *day name(char *name[],int n);printf("input Day No:n");scanf("%d",&i);if(i<0) exit(1);ps=day name(name,i);printf("Day No:%2d-->%sn",i,ps);}char *day name(char *name[],int n){char *pp1,*pp2;pp1=*name;pp2=*(name+n);return((n<1||n>7)? pp1:pp2);} 下例要求输入5个国名并按字母顺序排列后输出。在以前的例子中采用了普通的排序方法, 逐个比较之后交换字符串的位置。交换字符串的物理位置是通过字符串复制函数完成的。 反复的交换将使程序执行的速度很慢,同时由于各字符串(国名) 的长度不同,又增加了存储管理的负担。 用指针数组能很好地解决这些问题。把所有的字符串存放在一个数组中, 把这些字符数组的首地址放在一个指针数组中,当需要交换两个字符串时, 只须交换指针数组相应两元素的内
指针型函数
作者:分类:默认分类标签:
前面我们介绍过,所谓函数类型是指函数返回值的类型。 在C语言中允许一个函数的返回值是一个指针(即地址), 这种返回指针值的函数称为指针型函数。定义指针型函数的一般形式为: 类型说明符 *函数名(形参表) { …… /*函数体*/} 其中函数名之前加了“*”号表明这是一个指针型函数,即返回值是一个指针。类型说明符表示了返回的指针值所指向的数据类型。如:int *ap(int x,int y){...... /*函数体*/}  表示ap是一个返回指针值的指针型函数, 它返回的指针指向一个整型变量。下例中定义了一个指针型函数 day_name,它的返回值指向一个字符串。该函数中定义了一个静态指针数组name。name 数组初始化赋值为八个字符串,分别表示各个星期名及出错提示。形参n表示与星期名所对应的整数。在主函数中, 把输入的整数i作为实参, 在printf语句中调用day_na
函数指针变量
作者:分类:默认分类标签:
  在C语言中规定,一个函数总是占用一段连续的内存区, 而函数名就是该函数所占内存区的首地址。 我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量, 使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。 我们把这种指向函数的指针变量称为“函数指针变量”。函数指针变量定义的一般形式为:类型说明符 (*指针变量名)(); 其中“类型说明符”表示被指函数的返回值的类型。“(* 指针变量名)”表示“*”后面的变量是定义的指针变量。 最后的空括号表示指针变量所指的是一个函数。例如: int (*pf)();表示pf是一个指向函数入口的指针变量,该函数的返回值(函数值)是整型。下面通过例子来说明用指针形式实现对函数调用的方法。int max(int a,int b){if(a>b)return a;else return b;}main(){int max(int a,int b);int(*pmax)();int x,y,z;pmax

沉路

  • 文章总数0
  • 画报总数0
  • 画报点击数0
  • 文章点击数0
个人排行
        最近来访( 0 )
        博文分类
        日期归档