GCC编译程序之后,执行时出现死循环,一次结果都不输出,大神帮忙看看什么情况
下面附带原码:背景是在linux系统下利用GCC编写代码,调用函数时出现死循环,为了解循环死在哪里,增加了一段打印num的语句,个人觉得调用函数语句会执行两次,直到遇到3,程序进入死循环;最终程序会输出两次结果后进入死循环。但是结果进行编译的结果是直接进入了死循环,没有任何结果输出。
#include <stdio.h>
int str_fun(char *p);
int main(int argc,char *argv[])
{
char s[]="ho3llewrftridgeefvhtydv";
int n;
n=str_fun(s);
printf("n=%d\n",n);
return 0;
}
int str_fun(char *p)
{
int num=0;
while(*p !='\0'){
if(*p<='z' && *p>='a'){
num++;
printf("%d ",num);
p++;
}}
return num;
}