本文共 1445 字,大约阅读时间需要 4 分钟。
1.指针一定要有指向(赋值),就是一定要“初始化”。否则容易产生莫名的错误。
初始化又分为3种。
第一种,指向实心砖头(NULL)。即:p=NULL。此时指针的地址值为0.指针指向一个实心的转头,指针只有指向,指向的转头里面不能放任何数据。
第二种,指向满仓库(仓库里放了东西,所以称为“满”)。这个仓库里面可能放的是变量,指针,函数,数组等。这类变量,指针,函数,数组都是已经赋值了(定义过了,或者叫初始化过了)。
例如:int a,*p;
第三类,指向空仓库(仓库里没有放东西,所以称为“空”)。这个仓库里面可能放的是变量,指针,函数,数组等。但是这类变量,指针(指针最好要初始化,说成一定要初始化也不为过),函数,数组都是没有赋值了(定义过了,或者叫初始化过了)。
例如:int a,*p;
仓库名:地址值
仓库内容:地址存放的内容(指针指向的内容)
指针就是存放地址值的变量,指针可以指向空值(NULL),可以指向未赋值的变量(空仓库),但是不能不给指向。
2.如果要使用一个作为中间变量的指针,指针不要乱赋值,最好给这个作为中间变量的指针指向一个新的变量,以避免和需要操作的变量发生关联,而影响程序的正确性。
例如:要实现a和b互换,需要互换。
用变量实现:int a,b,t;
用指针实现:int a,b,c,*t,*p,*q;
实例分析:输入三个字符串,按由小到大的顺序输出:
错误程序:
#include<stdio.h>
输入how is y
输出y y is(明显是错误的)
转载地址:http://ossci.baihongyu.com/