指针是一种地址值,例如0x000012ea。
指针类型是一种新的类型,常见的类型有整形(int),用来存放整数;字符型(char),用来存放字符或字符串;浮点型(float),用来存放浮点型数据,比如小数。而指针类型是一种与他们独立的新类型,它存放的是各种数据存放的地址。它的格式为:类型 *,(*为间接访问运算符/解引用指针)
整形指针(int *)、字符型指针(char *)、浮点型指针(float *)
当然是指用指针类型定义的变量就是指针变量
指针类型 变量名
int *a; //定义一个整形指针变量
char* b; //定义一个字符型指针变量
float * c; //定义一个浮点型指针变量
注意:1)*符号挨着int或变量名a或都不挨,是不影响的,看个人习惯,他们都表示定义了一个指针变量。2)在定义的时候(或创建变量的时候),*符号表示定义了一个指针变量,在使用指针的时候,用*符号得到指针指向内存中的内容
是什么类型的指针,就应该指向该类型变量的地址
如一下例子:
int a = 10;
char b = 'a';
float c = 12.345;
int *pa = &a; //正确
int *pb = &b; //错误
int *pc = &c; //错误
VS2017会提示一下错误:
如何修改呢,有两种方式:第一将指针定义成与指向类型相同的类型指针;第二就是强转
int a = 10;
char b = 'a';
float c = 12.0;
//int *pa = &a;
//char *pb = &b;
//float *pc = &c;
int *pa = &a;
int *pb = (int*)&b;
int *pc = (int*)&c;