一 指针概念
#include<stdio.h>
int main()
{
int a = 0, b = 1;
char c = 'A';
printf("a is %d,&a is %p\n", a, &a);
printf("b is %d,&b,is %p", b, &b);
printf("c is %c,&c is %p\n", c, &c);
return 0;
}
指针变量时一种特殊的变量,变量中存放的不是某种数据类型的数据,而是另一个变量或常量的地址。
如有定义:
int value=150;char ch='M';
并执行赋值语句:
int *pv=&value;char *pc=&ch;
由于pv中存放的是value变量地址,pc中存放的时ch变量的地址,故称pv和pc为指针变量。简称为指针(pointer)。
指针指向的对象称为目标或目标变量(常量)。
1 指针定义
类型定义符 *指针变量名; 先定义后使用
int *ptr;
char *name;
float *pf;
定义ptr,name,pf分别为指向整型、字符型和浮点型数据的指针。
二 指针赋值
使用指针前,必须给已定义指针变量赋以指向目标变量的地址值。"&"操作符可获取变量的地址。
int num,*pm;
printf("%d",*pn);
上述定义错误!定义了指针变量,但没有指向任何地方。
三 指针变量的地址
指针也是变量,指针变量的地址是指它本身的内存地址。
指针的使用原则
永远清楚每个指针指向了哪里,指针必须指向一块有意义的内存。
永远清楚每个指针指向的对象的内容是什么?
永远不要使用未经初始化的指针变量。