指针变量p

 

设有定义:int x =0,*p;紧接着的赋值语句是:

A     *p=NULL;

B   p= NULL;

C   p= x;

D *p =x;

答案 B

A    int *p仅仅就是声明了p是一个指针 。 指针变量p没有初始化 ,属于野指针;百度这样说的  ;任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。如果没有初始化,编译器会报错“ ‘point’ may be uninitializedin the function ”。*p=NULL; *p指的是内容值,即变量的内容,因为p没有初始化,篡改了p原有的指向。

C 类型不对 p是指针变量 x是int类型的数据

D 和B 类似

分析指针和指针变量

1).指针的含义:

通过地址能找到所需的单元变量,地址形象化的称为指针。

指针式通过地址来体现的,地址指向所需的单元变量,即通过指针能够找到以它为地址的内存单位

2).指针变量(地址变量):                            

一个变量专门存放另一个变量的地址(即指针)。指针变量的值是地址(即指针)

指针变量是基本数据类型派生出来的类型,不能脱离基本类型而

#include<stdio.h>
int main()
{
	int a=100,b=10;     //定义整型变量a,b,并初始化
	int *pointer_1,*pointer_2;    //定义指向整型数据的指针变量pointer_1,pointer_2,‘*’表示指向
	pointer_1=&a;                //把变量a的地址赋给指针变量pointer_1
	pointer_2=&b;                //把变量b的地址赋给指针变量pointer_2
	printf("a=%d,b=%d\n",&a,&b);
	printf("a=%d,b=%d\n",a,b);    //输出变量a,b的值
	printf("*pointer_1=%d;*pointer_2=%d\n",*pointer_1,*pointer_2);  
                                 //通过指针变量输出整形变量的值
	return 0;
}
 

*pointer_1,*pointer_2  是内容值;

在dvc++运行结果;

pointer_1, pointer_2  是地址值;换句话p1,p2指向的是变量a,b所在内存单元的地址

2,字符指针在输出时候 出现乱码的情况以及解决方法;明确 *非定义功能 ---取值功能,在定义语句中就是单纯的表示指针

#include <iostream>
using namespace std;
int main(){
	//double num=1024.23;
	//声明一个指针指向num;
	//double * ptr_num=&num;
	char ch='a';
	char *p=&ch;
	cout<<"p的值:"<<(void*)p<<"\n"<<"*p的值:"<<*p<<endl;//输出乱码在此处可以强制转化成void类型
	/*cout<< "ptr_num的值:"<< ptr_num<<"\t"<<num<<endl;//明确\t 一个table键的空格,\n换行,cout可以连续输出多个量
	cout<<"*ptr_numd的:"<<*ptr_num<<"\t"<<&num<<endl;*/
	getchar();
	return 0;//函数返回值 也是结束的标志,
	


}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值