指针—数字转置

今天看了指针中数组部分的数字转置的问题,我花了大量时间仔细研究了其中的问题,发现了一些编程中容易出现的问题与dev的不同。

1.在DEV中,for(; ; ; )下面的语句需要用{ }包围起来。

2.地址不可以为负数! 这关系到一些算法能否实现 如:


void inv(int *x,int n)
{
	int *i,*j,*p,m,c=(n-1)/2;
	i=x;
	j=x-1+n;		/*这个题这里是难点 为什么不是n-1-x? 这样只用控制i就好了?? 
					因为在这里 x为地址 而地址不可以为负数!!! 所以改写成j自减的形式。*/
	p=x+c;			/*关于这个p=x+c,可以理解为控制这个转置的钥匙 如果不想全部转置,则
						   需要用这个c来控制 这里c取得是中值。
							如想把1,2,3,4,5,6,7,8,9,0 中前三个与后三个数转置 则c取3*/
	for(;i<=p;i++,j--)		/*这里用j--来控制循环 实现了不让地址为负数*/
		{					/*记住在dev中要带{}*/
		m=*i;
		*i=*j;
		*j=m;
		}
return;
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值