指针

1.出现野指针的后果是什么?

答:你的数据会出现危险,存放在堆中的数据,可能会被破坏,用来处理堆的数据结构,也可能会被破坏,甚至操作系统的数据也可能会被修改,甚至有时上述三种破坏情况,都会同时出现。

 此后可能发生的事情,取决于,这样亮点,第一,内存中的数据,被破坏的程度有多大,第二,内存中的被破坏的部分还要被使用多少次。

2.指针在系统中的纯在。

答: (1)系统为指针分配内存空间,

 (2)指针有自己的地址,

 (3)指针能够存值,但这个值,比较特殊,是地址。

3.指针常量与常量指针的不同?

答: 常量指针指向的内容不可变,但地址可以改变,即指针可以指向别的地址。指针常量是指指针本身不可以改变,而内容可以修改。 

如果指针常量指向的是字符指针变量,那么当修改*p时,原则上能够修改,再便宜,是能够通过,但在运行时不能通过,因为他试图去修改常量区的内容,显示是非法的。

当指针常量指向一个另外一个指针时,当这个指针指向别的内容时,那么,指针常量,还是指向原来的内容。

4.NULL总是等于0吗?

答:

NULL 用作初始化指针,这时 “没有东西”就是 “空”。给句柄赋值 NULL,它就是 空句柄NULL 用作字符串结尾,就是 ASCLL 不可见字符 '\0'  或"0"。NULL 严格来说 是一样“没有东西”的东西。 你可以理解为0,但它实际上不是数值0

5.函数的返回值为指针与整型的差别?

答:返回值为一指针的函数在调用成功时几乎总是返回一个有效指针,其值不等于零,在调用失败时总是返回一个空指针,其值等于零。返回值为一整形值的函数在调用成功时几乎总是返回一个零值,调用失败时总是返回一个非零值。

6.sizeof与strlen的区别?

答:sizeof是求数据类型所占的空间大小;strlen是字符串的长度;

 

 char *c="abcdef";
 char d[ ]="abcdef";
 char e[]={'a','b','c','d','e','f'};
 printf("adad/n",sizeof(c),strlen(c) );
 printf("&d&d/n",sizeof(d)strlen(d) );
 printf("ded/n",sizeof(e) ,strlen (e) );
 输出的结果是:
 4 6
 7 6
 6 14

 

7.函数指针与指针函数。

答:

指针函数是指带指针的函数,即本质是一个函数,函数返回类型是某一类型的指针。首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。

函数指针是指向函数的指针变量,即本质是一个指针变量。

8.C语言中函数的地址。

答:第一步:定义函数指针;

 第二步:定义函数;

第三步:把函数的地址赋给函数指针;

 第四步:通过函数指针去调用这个函数。

9.什么是指针的值?

答:int a=1;     

 

int *p=&a;   

指针变是的值也就是指针的值p,也就是变量a的地址,即100,也就是说p=100,
而指针指向的值,指的是指针所指向的地址100这个内存位置,所对应的值,也就是a的值,为1。

 

指针的只是指针本身储存的数值,这个值将被编译器当作一个地址,而不是一般的数值。

10.指针的运算有哪几类?

答:(1)指针+(-)整数;

 (2)指针-指针;

(3)关系运算:<, <=, >, >=。 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值