前言
变量是否占据内存空间,占据的是那块内存空间。
指针的用途:通过地址操作内存的数据,通过地址建立数据间的联系。
这两者是紧密联系的在指针与函数的使用中更加明显。
要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。
一.指针的基本概念和指针常量
1.什么是指针
指针就是地址,指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。
2.怎么获取变量的地址
取地址符号 &。
例:
int a=10;
printf ("&d",a);//输出a的值
printf ("&d",&a);//输出a的地址
3.c语言中数据类型与内存大小之间的关系
char 绑定1byte
int 绑定4byte
float 绑定4byte
double 绑定8byte
4. 指针(地址) 常量的写法
char c=‘m’;// 字符常量
int a=0; //整形常量
float f=3.14f ;//单精度常量
double d=3.14 ;// 双精度常量
&a;&c;&d//指针常量
4=100;//错误,常量4不能被修改
&a=&b;//错误,&a是指针常量不能被修改
5.指针的类型
cahr c=0;//那么&c的类型名是char *
int a=0;//那么&a的类型名是int *
long long int l=0;//那么&l的类型名是 long long int *
double d=0;//那么&d的类型名是 double *
二.指针的变量
普通变量的定义:类型名 变量名=初始值
指针变量的定义:类型名 变量名=初始值
int a;
//定义了一个int型变量a,可以存放int型数据
//int是类型名,a是变量名
a=10;//把10存放到a的内存块中
int *p
//定义了一个int型指针变量p
//p可以存放int型变量的地址
p=&a;//把a的地址存放到p的内存块中
总结
以后,每遇到一个指针,都应该问问:这个指针的类型是什么?指针指的类型是什么?该指针指向了哪里?(重点注意)