编程小白C语言题目练习6

题目要求

若有以下的定义:
int  a[]={1,2,3,4,5,6,7,8,9,10},  *p=a;

则值为3的表达式是(     )
(A)p+=2,  *(p++)        (B)p+=2,*++p        (C)p+=3,  *p++        (D)p+=2,++*p

思路分析 

引出一个数组元素,可以用:

下标法:如a[i]形式,a[2]=3

指针法:*(a+i)或者*(p+i)      *(p++)和*(++p)作用不相同,*(p++)是先取*p的值,然后使p+1,*(++p)是p+1,然后在取*p,如果p的初值为a(即&a[0],a[0]=1),*(p++)得到a[0]的值,而*(++p)得到a[1]的值

 举个例子

A选项中的表达式转化为代码

#include<stdio.h>
int main()
{
	int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
	p+=2;
	printf("*(p++)=%d\n",*(p++));
	return 0;
}

结果,A选项没问题

B选项

#include<stdio.h>
int main()
{
	int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
	p+=2;
	printf("*++p=%d\n",*++p);
	return 0;
}

结果,不等于3

C选项 

#include<stdio.h>
int main()
{
	int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
	p+=3;
	printf("*p++=%d\n",*p++);
	return 0;
}

结果 不等于3

D选项 

#include<stdio.h>
int main()
{
	int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
	p+=2;
	printf("++*p=%d\n",++*p);
	return 0;
}

结果不等于3

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值