重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
只要访问过p指针,都会变化(连续printf两次,结果不一样)
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比南康网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式南康网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖南康地区。费用合理售后完善,十载实体公司更值得信赖。
f函数结束,p指向地址已经释放,但是该内存单元依然存有原来的数据,我个人认为,访问p之后,由于一些系统内部操作,导致p指向内存单元被回收,内部机制不清楚,纯属个人猜测
进入程序后,就开始找main函数,可能是int main也可能是void main等。
然后可能遇到判断、循环、分支结构,然后按各自的语法分别执行,还可能遇到被调函数,到了那里就再去执行被调函数,执行完被调函数就再回来。
直到main函数全部执行完毕,直到最后一行结束,然后程序退出,运行界面出现perss any key to continue。
顺序就是从上到下。遇到一些结构遵循结构的语法进行,但是整体顺序就是由上到下。
问题出在没有贴出的代码上。
每次读取数字或字符时,要多读一个字符(把输入时的“回车符”读取掉,不让它留在缓冲区中)
一个死循环在执行中停止:
1、你在死循环中包含了break语句或return,比如if满足某个条件就执行break或者return。
2、你在循环中或调用的函数中,执行了exit函数,直接结束了整个程序。
3、你的代码有错,比如使用野指针,越界访问数组等不可控行为。
4、内存不足,程序终止,比如循环malloc申请内存,但没有释放,又或者调用递归函数造成内存溢出。
你对main函数理解错了,它不能返回一个字符串。main函数执行完了,整个程序就结束了,返回字符串有什么用?
给你两种方法
(1)return法
如果main函数没有返回值,则
return;有则返回相应类型的值即可
(2)ctr+Z或者ctr+D,前者为微软操作系统,后者是Unix系统中停止程序的运行