*a++与a++这两个有什么区别啊
10个回答
展开全部
*a++与a++区别如下:
1、a++是先取a的值然后进行++运算。
2、*a++是先执行++运算,再执行 *, 即指针先移动一个位置,在对移动后指针所指位置解引用取值。
3、*与++是C语言中的运算符,++的优先级高于*。
扩展资料:
1、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
2、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
3、不同的变量类型可以用结构体(struct)组合在一起。
4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
5、部份的变量类型可以转换,例如整型和字符型变量。
6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。
7、预编译处理(preprocessor)让C语言的编译更具有弹性。
展开全部
*a++ 要求a一定要是个指针变量,如:int *a; int x[]={1,2,3}; a=x ;
*是操作指针地址 的运算符,如上述,此时*a 就是1
*a++中,*运算级高,所以,会先算*a , 然后进行 a=a+1
而a++只代表指针的移动,即a=a+1
*是操作指针地址 的运算符,如上述,此时*a 就是1
*a++中,*运算级高,所以,会先算*a , 然后进行 a=a+1
而a++只代表指针的移动,即a=a+1
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为没有说明a的定义,这里看问题推测应该是个指针
a++表示a指向下个地址,例如a如果当前指向数组num[0]的地址,那么a++后,当再次使用a时,其应该指向了数组num[1]的地址了;
*a++表示取指针a指向的地址中存放的内容,然后给指针a++令其指向下一个地址,如上例a指向num[0],而数组num[0]中的内容是0的话,那么,*a++的值应该为0,而执行此语句后对应的a应该指向了数组num[1]对应的地址了;
也可以这样说:*a++相当于先取当前a指针指向的地址中内容,然后进行a++,而a++单是对a指向的地址向后移动1个单位而已;
a++表示a指向下个地址,例如a如果当前指向数组num[0]的地址,那么a++后,当再次使用a时,其应该指向了数组num[1]的地址了;
*a++表示取指针a指向的地址中存放的内容,然后给指针a++令其指向下一个地址,如上例a指向num[0],而数组num[0]中的内容是0的话,那么,*a++的值应该为0,而执行此语句后对应的a应该指向了数组num[1]对应的地址了;
也可以这样说:*a++相当于先取当前a指针指向的地址中内容,然后进行a++,而a++单是对a指向的地址向后移动1个单位而已;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
指针运算符*与自增运算符++同一优先级别,按照自右向左的结合方式*a++等价于*(a++),意思是“指针a所指向的地址的内容”,比如数组b[3]={3,5,7},指针a=b(其实是a指向数组首元素即b[0]),则*(a++)=3,之后指针a自加一变成a+1指向元素b[1]。a++简单不说了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
区别大得很啊,a++就是a自增1(对于不同数据类型,自增1可能不仅仅是+1而已)
*a++,必须a是指针,返回a所指向的值、然后a再自增1
*a++,必须a是指针,返回a所指向的值、然后a再自增1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |