《c2第二章基本数据类型及其运算(2011)》-课件设计(公开).pptVIP

《c2第二章基本数据类型及其运算(2011)》-课件设计(公开).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
解答:20 解释:逗号表达式求解过程自左至右,依次计算各表达式的值,“表达式n” 的值即为整个逗号表达式的值。 先求解a = 3 * 5,得a=15;再求a * 4=60;最后求解a + 5=20,所以逗号表达式的值=20。 例1: 逗号表达式 (a = 3 * 5, a * 4), a + 5 的值 main(){ int i,t; i=(t=99,printf(t=%d\n,t)); printf(i=%d\n,i); getch(); } 例2:逗号表达式t=99,printf(t=%d\n,t)的值 t=99 i=5 谢谢! * * 建议:初学者加强对不同类型数据之表示方法以及存储方式的理解 。 如: int a; 语句定义了一个什么类型的变量,变量名是什么?该变量所对应的内存单元有几个字节?是有符还是无符的?数据范围是多少? float a; 或 double a; 或 long a; 呢? 注意:计算机内部是以二进制处理数据的,因此会产生误差: main(){ float x=3.1; printf(%.8f,x); getch(); 显示的是:3.0999999 } 指针的概念 指针是C语言最具特色的语言成分。也是C语言最具争论的语言成分。 简单地说,指针就是地址。 地址是计算机内存管理中的重要概念。计算机内存中的变量,指令的存取均是通过地址来进行的。 例如,在程序中对变量的访问是通过变量名进行的,而实际上系统是通过变量的地址来访问变量的。 定义存放3的整型变量a可以用:int a=3; 而定义存放变量a所在内存的地址2006, 就要用指针变量了:int *p; 2006 a p 3 2006 也就是说:int *p 定义了一个可以存放任何整型变量地址的指针变量p。 要想让上边的a的地址2006存入到p里面,可以用赋值的方式:p=a; 或者在定义p时就赋值: int *p=a; main(){ //显示a的内存地址 int a=3; int *p; p=a; printf(%d,p); getch(); } 指针变量 定义指针变量的一般形式是: 类型标识符 *指针变量名 例如:int *p; 定义了一个指向整形变量的指针变量 p。 通常,将指针和被指变量一起定义: int x,*p=x; 指针变量是一种特殊的变量,它里面存储的数是另一个变量的内存(首)地址。 指针变量必须先定义,并且指向了指定类型的变量(获得实际地址值)后才能使用。否则其值为随机数,获取其引用变量的值时出现运行错。 指针变量的类型是它指向的那个变量的类型。 在一个指针变量中只能存放同一类型变量的地址。否则造成数据提取的错误。 指针变量的引用 在表达式中,可以使用和*两个运算符: 取地址运算符 以变量名为操作数,以该变量的地址为值。 如:p=a; 将a的地址送入p 实现了指针变量的赋值。指针只有被赋值才有了意义。 * 取指针指向对象运算符(指针运算符) 以变量的地址为操作数,以该变量的值为值。 如: *p 就是 指针变量p所指向的变量,也就是a。 因此,p=a将a的地址送入p, b=*p就将a的值赋给了b 即 printf(“%d“,a)与printf(“%d“,*p)是一样的。 和*互为逆运算:*(a)→a (*p)→p 下边程序验证了和*的运算互逆性质 main(){ int x=3,*p=x; printf(%d\n,p); printf(%d\n,(*p)); printf(%d\n,x); printf(%d\n,*(x)); getch(); } 从下边的例子可以进一步了解指针运算符*的作用 main(){ int a,b,*p1=a,*p2=b; a=100;b=10; *p1=*p1+2; // 就是a+2 *p2=*p2+1; // 就是b+1 printf(%d,%d\n,*p1,*p2); p1=p2; // b的地址p2赋给了a的指针p1, // 使得p1和p2指向了同一个变量b的首地址。 printf(%d,%d\n,*p1,*p2); getch(); } 运行结果:102,11 11,11 在一个指针变量中只能存放同一类型变量的地址,否则造成数据提取的错误。 下边这个程序验证了指向类型不一致的错误结果: main(){ int x=3,*

文档评论(0)

花好月圆 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档