小编Cal*_*vin的帖子

为什么我的回文功能不起作用?

由于某些原因,我的回文功能不起作用,我会喜欢它的一些帮助:

int Pal(char *s, int a, int b)
{
    if (a>= b)
        return 1;

    if (s[a] != s[b])
        return 0;

    return Pal(s, ++a , --b);
} 

int main()
{
    char *s = "civic";

    if (Pal(s , 1, strlen(s)))
        printf("YES\n");
    else
        printf("No\n");
}
Run Code Online (Sandbox Code Playgroud)

它继续打印否,我对为什么会发生这种情况一无所知.

c recursion palindrome

3
推荐指数
1
解决办法
105
查看次数

从double隐式转换为int?

// Assuming these initializations
int x; 
float y;
Run Code Online (Sandbox Code Playgroud)

这有什么区别:

  x = y = 7.5;
Run Code Online (Sandbox Code Playgroud)

和这个:

  y = x = 7.5;
Run Code Online (Sandbox Code Playgroud)

为什么第一个将y值打印为7.5,第二个将值打印y7.00

c

2
推荐指数
1
解决办法
57
查看次数

malloc是否会生成字符串常量?

首先,如果这是一个天真的问题,请原谅我; 我只是一个初学者,正在努力学习.

我知道:

  char* a = "CD"; 
Run Code Online (Sandbox Code Playgroud)

将字符串存储在只读存储器中 ; 所以对字符串的任何更改都是不可能的.(不变)

但我确实知道使用malloc的情况也是如此;

char* a = malloc(3*sizeof(char)) ;

a = "CD" ; 
a[0] = 'S' ; // even regular a = "MR"; does not work
Run Code Online (Sandbox Code Playgroud)

我很困惑,我以为这是存储在堆中的 ......

为什么我不能修改字符串?

c malloc pointers

0
推荐指数
1
解决办法
79
查看次数

标签 统计

c ×3

malloc ×1

palindrome ×1

pointers ×1

recursion ×1