C语言指针教学难点透析

2017-09-20 10:54:26陈坤
读天下 2017年24期

摘 要:C语言是程序语言的重点,也是教学中的难点,本文对C语言教学中由浅入深地讲解了一些C语言的重难点,通过用实例对它们的性质进行详细的解读,让学生更好地理解其中的区别。

关键词:C语言;指针;函数;数组

一、 指针变量的引用

指针变量使用时对以下得几点要格外注意:

1. 对指针变量要先下定义,定义后,再使用。

2. 对指针变量进行操作时,要保持类型的一致性。例如:int i=50;char *p=&i;;对上述指针进行分析,可以得出上述指针是非法的。因为 int 后的i是整形变量,而char是定义字符变量,这两个变量是不同类型的变量。

3. 当使用赋值给指针变量时,有一点要谨记,数值不可以直接赋值给指针变量,例如:int *p=52566,因为指针变量是储存其他变量的地址。

4. 指针变量在每次被调用时,首先需要做的就是对初始变量进行初始化,例如:int *p;printf(“*p is %d”);这样的操作就是不合法的,当程序员直接对变量进行使用时,没有初始化,那就让指针变量没有所指。

5. 当使用指针变量进行算数运算时,不是变量p进行加法运算,直接变为p+3,这样是错误的,举个例子:int a[5]={0,1,2,3,4};int *p=a;p+3;语句中,而是让指针变量指向a[3],做一个假设int 占用4个字符,p+3相当于移动了12个字符。

6. 指针变量中有三个变量,这三个变量学生常常会弄混,具体使用时,就会犯错。关于这三个变量就是const int *p;int const *p;const int const *p。const int *p,修饰*p是个const常量.而*p是指向对象的内容.所以表示指向对象的内容是常量,const变量不能被直接赋值,但是可以通过指针来修改const变量。由于const局部变量会存在栈里,而const全局变量会存在只读存储内存上所以我们可以通过指针来修改const局部变量,但是修改const全局变量,会使程序崩溃。……

登录APP查看全文