- 0
- 0
- 约4.92千字
- 约 40页
- 2021-09-27 发布于河北
- 举报
C语言;主要内容;(1)多动手
学习编程唯一方法是编写调试程序。看再多的书,效果也比不上设计调试一个简单程序。
(2)养成良好的编程习惯
养成好习惯很难。所以良好的编程习惯要从一开始培养。
(3)注意细节
不应漏过任何一个技术细节。只有细节的日积月累,才能有技术上的提高。
(4)了解开发环境
在学习编程语言的同时,也需要了解编程语言的开发、使用环境。如硬件平台(51、MSP430、PC)、操作系统(uCOS、Linux、DOS)、集成开发环境(Keil C,Borland C)等。
(5)多看书、勤思考
很多国外的经典书籍是由拥有几十年经验的质深程序员编写的。这些书里最重要的是融入了作者多年的编程经验。多看书,再结合自身平时的积累,不断思考总结是提高编程技术最有效的办法。;第二章 指 针;2.1.3 指针的三个要素
指针指向的地址(指针的内容);
指针指向的地址上的内容;
指针本身的地址。
例 3: int A, *pA, **ppA;
pA = A;
ppA = pA;
在复杂的指针都可以通过下表来分析:
ppA ppA *ppA **ppA
pA pA *pA
A A;第二章 指 针;第二章 指 针; 但数组不同于指针:
数组名 a是指向数组起始位置的“常量”。
因此,不能对数组名进行赋值操作。
例 5:
int a[4], *p;
p = a; //正确
a = p; //错误
p++; //正确
a++; //错误 ;第二章 指 针;(2).通用指针
通用指针可以指向任何类型的变量。通用指针的类型用(void *)表示,因此也称为void 指针。
下面的第三行定义了两个通用指针:
int n, *p;
double *q;
void *gp1, *gp2;
可以直接把任何变量的地址赋给通用指针。
例如,有了上面定义,下面赋值是合法的:
gp1 = (void *) n;
可以把通用指针的值赋给普通的指针。如果被赋值指针与通用指针所指变量的类型不符,需要写强制转换:
p = (int *)gp1;;第二章 指 针;2.4.2 函数指针的使用
例6 :假定有下面的函数声明
int ptr; int fn(int); int (*fp)(int); 指出下面的语句是否合法?,为什么?。 fp = fn; //正确,将函数fn的地址赋给fp fp = fn(5); //错误,返回给fp的结果不是一个函数地址。 fp = ptr; // 错误,ptr的地址不在程序代码区,两种数据类型不能转换。
从上面的例子可以看出:(1) 不能将普通变量的地址赋给函数指针;(2) 不能将函数的调用赋给函数指针(3) 可以将函数名赋给一个函数指针;第二章 指 针;2.4.3 函数指针数组
例7 :在一个计算器的例子中,有如下一些语句:??switch(oper){??case?ADD:??????????result=add(op1,op2);???break;??case?SUB:??????????result=sub(op1,op2); ?break; ... }?
对于一个复杂的计算器,switch语句将非常长。我们可以用函数指针数组来完成。?
??double?add(double,double);??double?sub(double,double);??...??double?(*oper_func[])(double,double)={add,sub,...};
第2个步骤是用下面语句替换前面整条switch语句:??result=oper_func[oper
您可能关注的文档
最近下载
- 常用字偏旁部首为走之儿(辶)的字练习字帖.pdf VIP
- 1.1我们与法律(教学课件)道德与法治新教材统编版五四学制六年级下册.pptx VIP
- 文化为主题的空间设计研究.pptx VIP
- 中药制剂检测技术第一章绪论.ppt VIP
- 《食管癌术后吻合》课件.ppt VIP
- 2013款长安福特新福克斯_汽车使用手册用户操作图解驾驶指南车主车辆说明书电子版.pdf VIP
- 人工智能入门 课件 刘峡壁1.绪论、2.人工神经网络与机器学习.pptx
- 餐饮大数据与门店开发项目一餐饮门店开发投资评估任务三开店模.pptx VIP
- 电机及拖动系统课件全套.pdf
- 2026版人教版八年级下册语文古诗及古诗解析.docx VIP
原创力文档

文档评论(0)