- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 指 针 8.1 什么是指针 3. 指针及指针变量 直接访问与间接访问 直接访问:按变量地址存取变量值 间接访问:通过存放变量地址的变量去访问变量 §8.2 指针变量 §8.2 指针变量 §8.3 通过指针引用数组 对二维数组 int a[3][4],有 a-----二维数组的首地址,即第0行的首地址 a+i-----第i行的首地址 a[i] ? *(a+i)------第i行第0列的元素地址 a[i]+j ? *(a+i)+j -----第i行第j列的元素地址 *(a[i]+j) ? *(*(a+i)+j) ? a[i][j] 指向一维数组的指针变量 定义形式: 数据类型 (*指针名)[一维数组维数]; 例 int (*p)[4]; §10.4 字符串指针和指向字符串的指针变量 10.6 返回指针值的函数 §10.7 指针数组和指向指针的指针 §10.8 指针的数据类型小结 说明: ⑴字符数组由若干个元素组成,每个元素中放一个字符。而字符指针变量中存放的是字符串的首地址,不是将字符串放到字符指针变量中。例如: char *ps=I am a student.; ⑵字符数组和字符指针变量都可以在定义时赋初值。 char s[10]; s=“hello!”; ╳ char s[10]=“hello” ; √==char s[10]={‘h’,’e’,’l’,’l’,’o’,’\0’}; char *ps; ps=“hello!”; √==char *ps=“hello”; ⑶字符指针变量必须先赋值后使用,否则对系统构成危险。 char *ps; scanf(“%s”, ps); ╳ char *ps,s[10]; ps=s; scanf(“%s”, ps); √ ⑷字符数组名是指针常量,只能表示一个确定的字符串,不能改变。字符指针变量的值是可改变的。 ⑸若定义了一个指针变量,并使它指向一个字符串,就可以用下标形式引用指针变量所指字符串中的字符。 如:char *a=“I love China!”;printf(“%c”,a[5]); ⑹用指针变量指向一个格式字符串,可以用它代替printf函数的格式字符串。 如:int a; char *format; format=“a=%d\n”; 则:printf(format,a);相当于printf(“a=%d\n”,a); main() {char *a=“i am a student”; a=a+7; printf(“%s”,a);} 结果:student main() {char c[]=“i am a student”; c=c+7; printf(“%s”,c);} ╳ 例题:在一字符串中找出所需字符的位置。 main() { char a[]=I am a student“,*p,m; int i=0; p=a; scanf(“%c”,m); while(*p!=‘\0’) { if(*p==m) printf(“%d”,i); p=p+1; i=i+1; } } 字符串指针作函数参数例题:问题同上例。 int xx(char *p,char a) { int i=0; while(*p!=‘\0’) { if(*p==a) return i; i=i+1;p=p+1;} } main() {char *p1,x; int y; gets(p1); scanf(“%c”,x); y=xx(p1,x); printf(“%d”,y);} 10.5 指向函数的指针 一个函数在编译时被分配一个入口地址(即函数的指针),通过此地址可以找到此函数。可以用一个指针变量指向此函数,然后通过该指针变量调用此函数。 注意:函数可通过函数名调用,也可通过函数指针调用。 定义格式: 数据类型 (*指针变量名)(); 例如:int (*p)() (*p)()表示定义一个指向函数的指针变量,它不是固定指向哪一个函数,只表示定义了一个此类型的变量,它专门用来存放函数的入口地址。在程序中,把哪一个函数的地址赋给它,它就指向哪一个函数。 如: int max(int x,int y);/*函数的原型声明*/ int (*p)(); p=max; 注意:赋值时,只给出函数名而不必给出参数。 例: 求a和b中的大者 。 max(int x,int y) {
文档评论(0)