复习C——指针

指针变量存储的不是变量,而是变量的地址。
指针是c的精髓

指针和指针变量

1.通过变量的地址可以找到该变量所在的存储空间,所以说该变量的地址指向该变量所在的存储空间,该地址是指向该变量的指针。
2.定义:变量类型* 变量名
3.初始化:
(1)接受变量的地址;

int a=10;
int* p;
p=&a;

(2)与其他指针变量指向同一块存储空间;

int *q;
q=p;

(3)定义时同时赋值。

int a=10;
int* p=&a;

&(取址运算符):取变量所在的地址
*(取值运算符):取出变量指向的地址中存储的数据
4.指针变量的引用
根据指针变量存放的地址,访问该地址对应的变量:*指针变量名

#include
int main(){
	int a=10;
	int* p=&a;
	printf("%d\n",*p); 
	return 0;
}

5.补充
(1)不确定指针在何时何处使用时,可以让它指向空

int* p=0;//0时唯一不必转换就可以赋值给指针的数据 
int* q=null;//null是一个宏定义,其作用与0一样 

(2)无类型指针:void* ;

	void *p=NULL,*q;//定义两个无类型指针,其中一个指向null
	int* m=(int*)p;
	int a=10;
	q=&a; 

指针作为函数参数

因为实参和形参之间的数据传递是单向的值传递,所以使用指针变量作为函数的形参,通过传递地址的方式,使形参和实参都指向主调函数中数据所在地址,从而使被调函数可以对主调函数中的数据进行操作。

指针的交换

1.指针指向交换;

#include
int main(){
	int *temp=0;
	int a=10,b=20;
	int* p =&a;
	int* q =&b;
	temp=p;
	p=q;
	q=temp; 
	printf("%d\n",*p);
	printf("%d",*q);
}

2.指针所指地址中存储数据的交换。

#include
int main(){
	int a=10,b=20;
	int* p =&a;
	int* q =&b;
	int temp=0;
	temp=*p;
	*p=*q;
	*q=temp; 
	printf("%d\n",*p);
	printf("%d",*q);
}

你可能感兴趣的:(c语言,c++,开发语言)