c语言pre指针,c - post和pre递减之间的区别c函数putchar中的char指针值 - 堆栈内存溢出...

我在C中有以下代码(我正在使用tdm-gcc 4.9.1和Netbeans 8.0.2):

#include

#include

#include

char * pr(char * str);

int main(void)

{

char * x;

x = pr("Ho Ho Ho!");

return 0;

}

//*************************************

char * pr(char * str)

{

char * pc;

pc = str;

while (* pc)

{

putchar(* pc++);

printf(" %d %d\n", pc, str);

}

printf("\n");

printf(" %d %d\n", pc, str);

printf("\n");

do

{

putchar(* pc--); // alternate case: * --pc

printf(" %d %d\n", pc, str);

} while (pc - str);

return (pc);

}

在do-while循环中,当putchar函数内部的参数为

* pc--

我打印出以下结果(第一列打印字符串“ Ho Ho Ho!”,一次一个字符,第二列打印指针到char pc的地址,而第三列打印指向char str的指针的地址) :

H 4206629 4206628

o 4206630 4206628

4206631 4206628

H 4206632 4206628

o 4206633 4206628

4206634 4206628

H 4206635 4206628

o 4206636 4206628

! 4206637 4206628

4206637 4206628

4206636 4206628

! 4206635 4206628

o 4206634 4206628

H 4206633 4206628

4206632 4206628

o 4206631 4206628

H 4206630 4206628

4206629 4206628

o 4206628 4206628

要么

Ho Ho Ho!!oH oH o

当putchar函数内部的参数是

* --pc

相应的结果是

H 4206629 4206628

o 4206630 4206628

4206631 4206628

H 4206632 4206628

o 4206633 4206628

4206634 4206628

H 4206635 4206628

o 4206636 4206628

! 4206637 4206628

4206637 4206628

! 4206636 4206628

o 4206635 4206628

H 4206634 4206628

4206633 4206628

o 4206632 4206628

H 4206631 4206628

4206630 4206628

o 4206629 4206628

H 4206628 4206628

要么

Ho Ho Ho!!oH oH oH

我的问题如下:关于do-while循环内putchar函数的输出,后缀和前缀递减运算符之间有什么区别?

任何反馈将不胜感激。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值