指针相关知识

 1.间接访问操作符*

int *d=&a;d与*d的区别:

          d为一个指针,指向a的存储地址 。*d为d指向地址中的值(即a的值)。

//#include<stdio.h>
#include<iostream>
using namespace std;
int a=100;
int *d=&a;	//d为一个指针,指向a的存储地址 。*d为d指向地址中的值。 
int main()
{
//	printf("a的地址为%d\n",&a);
//	printf("d=%d\n",d); 
//	printf("*d=%d",*d);//*e的值为c; 
	
	cout<<"a的地址为"<<&a<<endl;
	cout<<"a的值为"<<a<<endl;
	cout<<"d="<<d<<endl;
	cout<<"*d="<<*d<<endl;
}



//int *d=&a;
//与 int *d;d=&a;含义相同

 输出结果:

2.未初始化的指针

int  *a;      //声明创建了一个名叫a的指针变量

*a=12;        //将12赋值于a所指向的内存地址

 错误:我们未对a进行初始化,不知道a所指向哪里。若执行此程序,第一种可能:若a的初始值是一个非法地址,则出错,程序终止。第二种可能:这个指针可能包含一个合法地址,执行程序,则那个位置的值被修改,此类错误难以捕捉。

猜你喜欢

转载自blog.csdn.net/qq_40243295/article/details/81811077