关于++k,k++,*(k++),*(++k)的问题~
2个回答
展开全部
你好!!!
首先要知道 ++ *它们的优先级别是一样的,他们都是从右到左结合的
举个例子吧:
int *k,s[5]={1,2,3,4,5,} ;k=&s;表示把数组s的首地址赋给指针变量k(不是数组里所有的元素),此时的指针变量指向第一个元素。即*k的是是1
++k,这是前自加运算,就是先自加。指针指向下一个元素,即*k的值是2;
k++;设施后自加运算,就是先使用k的值,然后再自加,比如:*k++的值还是2(接着上面的运算),*k++等于*k,k++,此时k已经指向下一个元素,即值3
*(++k),先使k自加,此时k指向值为4的元素,等价与++k,*k
首先要知道 ++ *它们的优先级别是一样的,他们都是从右到左结合的
举个例子吧:
int *k,s[5]={1,2,3,4,5,} ;k=&s;表示把数组s的首地址赋给指针变量k(不是数组里所有的元素),此时的指针变量指向第一个元素。即*k的是是1
++k,这是前自加运算,就是先自加。指针指向下一个元素,即*k的值是2;
k++;设施后自加运算,就是先使用k的值,然后再自加,比如:*k++的值还是2(接着上面的运算),*k++等于*k,k++,此时k已经指向下一个元素,即值3
*(++k),先使k自加,此时k指向值为4的元素,等价与++k,*k
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询