C语言中*a是什么意思啊?和数组一个用法吗?

C语言中*a是什么意思啊?和数组一个用法吗?有一个函数voidcountValue(int*a,int*n){inti;*n=0;for(i=1;i<=1000;i++)... C语言中*a是什么意思啊?和数组一个用法吗?
有一个函数
void countValue(int *a,int *n)
{
int i;
*n=0;
for(i=1;i<=1000;i++)
if((i%7==0||i%11==0)&&i%77!=0)
{
*a=i;
*n=*n+1;
a++;
}
}
怎么理解 *a=i;
*n=*n+1;
a++;
??
展开
 我来答
百度网友d3e418b2c
2009-09-04 · TA获得超过2195个赞
知道大有可为答主
回答量:1361
采纳率:0%
帮助的人:1699万
展开全部
int *a表示a是一个指针,或者也可以是一个数组名,你可以理解为数组
既然a是指针,那么在指针前面加*号表示对该指针所指向的地址取值
所以*a=i;就是把i的值赋值给a指针所指向的地址的值,说起来有些拗口,其实就是说改变了a这个地址内存的值
*n=*n+1;也是一个道理,表示n指向的地址的值加1
a++;表示a地址加1,就是说本来a指向0x0000,那么现在就变了,a会指向另外一个地址,那么这个地址对应的值也会相应的改变。

建议:先找一本C语言的书,把指针一章的基本概念多理解一下,这些都是基础的东西,需要多体会。
百度网友f4f79435d
2015-11-28 · TA获得超过235个赞
知道小有建树答主
回答量:258
采纳率:100%
帮助的人:127万
展开全部
1. 定义数组
int a[10]
a既是数组的名字,也是数组的地址,相当与从a这个地址连续分配了10个int内存地址

2.我们可以设定指针
int *p; //*p是int类型变量,p是指向int变量的指针
p = &a[10] // 将数组的地址赋值给p指针

3.很多人喜欢写成
int *p = &a[10]; //这个语句经常困扰人,可以拆分为 int *p; p = & a[10];

4.我们知道a是数组的地址,同时也是数组内第一个元素的地址,所以
int *p;
p = &a[10] = a;
也就是说a其实就是地址,*a就是指向了数组中的地一个元素,如果你要只想数组中的第i个元素可以写成
*(a+i); 其实*(a+i)==a[i]
*a == a[0]

5. 函数声明
void add(char a[ ]);和 void add(char *a);其实是一样的
因为在编译的时候都是讲数组的地址(就是数组收元素的地址)传递过去

6. 所以在用到数组的时候你只需要数组的第一个元素的地址(也就是函数名)就可以了
int a[];
int *a;
char a[];
char * a;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
克鲁伊夫式转身
2009-09-04 · TA获得超过107个赞
知道答主
回答量:81
采纳率:0%
帮助的人:0
展开全部
*a=i,就是说将i的值赋予*a,使指针a指向的地址中存入i的值。*n=*n+1也很好理解,比如指针n指向的地中之前存入的值为5,则上式的意思就等同于*n=5+1,指针n指向的地址中将存入数值6。a++的意思就是a指向的地址向后移一位。比如之前a指向数组b[0]的地址,则之后将指向b[1]。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千岛j玉叶
2009-09-04 · TA获得超过854个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:131万
展开全部
这是个调用函数,没有返回值,
先是把两个地址赋值给a和n,
*a是一个指向整数类型的指针变量,*a=i就是把i得值赋值给*a,
*n=*n+1;就是把*n得值加1再赋值给*n;
a++;这个语句就是把a的值加1再使用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Pzy583787301
2015-11-19 · 超过26用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:44.8万
展开全部
1、这是一个指针变量
2、和数组不一样,数组可以根据数组下标查找数据,指针取值要加地址偏移量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式