C++语言复习七 数组的memset初始化 void指针的用法 举例

对于数组a[10]

a则为数组的首地址,其实就是一个 指向a[0]常指针。

则可以用:

*(a+1) = a[1]; 

*(a+n)=a[n];

注意:

用*(a++) 表示 a[1]; 这种表示是的a 是一个常指针不能改变其值。


二维数组的一种表示和输出方法:






在初始化数组尤其是需要每次都初始化的时候,很多同学使用循
环来进行,这样不但速度慢,而且写起来也很长。所以现在提供

一个函数来实现这个功能。。。

原型:

extern void *memset(void *buffer, int c, int count);

包含头文件:<string.h>
注意这个函数是字符串函数,所以一定要包含字符串头文件。
使用方法:


int a[50];memset(a,0,sizeof(a));

这样呢,就将数组a内所有的值都赋成0了,sizeof也是一个函数,
得到数组a的字节大小。
另外需要注意的是,memset函数是逐字节进行填充,所以a一般
为char *型。对于其它类型的a,可以填充的值有两个,0和-1。因
为计算机中用二进制补码表示数字,0和二进制补码为全0,-1的

二进制补码为全1。



const 指针:

用const修饰指针有两种情况:

情况1,

int i = 3;

const int *p;(int const *p;这两种写法等价。并且定义的时候初始化和在后面初始化都可以,没有区别)

p = &i;

p为一个指向常量的指针。

*p的值不能更改。

意思是不能再用*p来更改i的值。

可以用p = &b;来改变p的指向。

情况2,

int i = 3;

int *const p = 3; (这里定义的时候就要初始化不能放在后面初始化)

这里p是一个常指针,意思p的值不能更改

意思是不能用p = &b;来改变p的指向

但是可以用*p来更改i的值。



void指针的用法 举例

#include<stdio.h>
void main()
{
	void  *p;
	int  i = 3;
	p = &i;
	printf("%d , %d %d \n", &i, i , *(int *)p);//*(int *)p) 将void型指针强制转换成int型。然后在前面加*输出指针保存的值。



}









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值