[其它]四川大学c程序课件第8章.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[其它]四川大学c程序课件第8章

Company Logo 例8.13 分析以下程序执行后的结果。 (1)#include <stdio.h> (2)main( ) (3){ (4)static int m[5]={7,4,6,3,10}; (5)int i,j,*p; (6)i=10; (7)p=m[0]; (8)for(j=0;j<5;j + +) (9)i=(*(p+j)<i)?*(p+j):i; (10)printf(“%d\n”,i); (11)} 计算机基础 教学实验中心 Company Logo 8.6.3、指针的加减运算 对指针变量进行加上或减去一个整数称为移动指针, 使指针变量指向相邻的存储单元。只有当指针指向 一段连续的内存单元时,指针的移动才有意义。 除了上述加减运算外,指针变量不能作其他任何的 算术运算,如指针变量的乘除,取模运算等。 计算机基础 教学实验中心 Company Logo 8.7 指向字符串的指针 通常用字符数组表示字符串,如: char s[ ]=“This is a book”; 若用字符指针来表示,则应写为: char *p=“This is a book”; 或者: char *p; p =“This is a book”, 计算机基础 教学实验中心 Company Logo 8.7 指向字符串的指针 例: (1)#include string.h (2)#include stdio.h (3)main( ) (4){ (5)char s []= “Sichuan University”; (6)char *p; (7)int *q; (8)int a [10]={1,2,3,4,5,6,7,8,9,10}; (9) p=“Sichuan University” ; (10)q=a; (11)printf(“%s,%s”,p,s); (12)printf(“%s,%s”,q,a); (13)} 在上述程序中,第(11)条语句输出如下结果: Sichuan University, Sichuan University 而第(12)条语句则会出错,因为通过字符数组名或字符指针变量可以输出整个字符数组名或字符串,如语句(11),而对于数值型数组,是不能这样做的,如第(12)条语句就是错误的。 计算机基础 教学实验中心 Company Logo 8.7 指向字符串的指针 字符指针变量和字符数组的区别: (1)字符指针变量中存放的是字符串的首地址,不是将字符串放到字符指针变量中,而字符数组则由若干数组元素组成,每个元素放一个字符。 (2)赋初值的方式不同: 对于字符指针 char *s=“This is a pen”; 等价于 char *s; s=“This is a pen”; 对于字符数组初始化: static char m[30]={ “This is a pen”}; 不等价于 static char m[30]; m[ ]={ “This is a pen”}; 因为数组可以在变量定义时整体赋初值,除此之外不能用赋值语句给其赋值。 计算机基础 教学实验中心 Company Logo 8.7 指向字符串的指针 (3)赋值方式不同 对于字符数组,赋值方式是用赋值语句给其每一个元素赋值一个字符,而不能将整个字符串赋给它。 若一定要在语句中将整个字符串赋给一个字符数组,则必须用strcpy函数来实现,如: char s[30]; s=“Sichuan university”; 是错误的,应该用下方式进行赋值。 s[0]=‘S’; s[[1]=‘i’; s[2]=‘c’; ┊ ┊ s[17]=‘y’; 或用: strcpy(s,“Sichuan university”); 计算机基础 教学实验中心 Company Logo 8.7 指向字符串的指针 char *s; s=“Sichuan university”; 是正确的。 字符指针之间的相互赋值与其它变量无异,如: char *s1=“Sichuan university”; char *s2; s2=s1; 就可将s1的值赋给了s2。 计算机基础 教学实验中心 Company Logo 例8.15 --,++与字符指针的综合应用 #include stdio.h main() { char s[] = sichuanuniversity; int *pc=s; printf(pc=%d *pc=%c\n,pc,*pc); printf(pc=%d *pc=%c\n,pc,++(*pc)); printf(pc=%d *pc=%c\n,pc,++*pc); printf(pc=%d *

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档