相关疑难解决方法(0)

后增量和预增量概念?

我不明白后缀和前缀增量或减量的概念.谁能给出更好的解释?

c++ conceptual pre-increment post-increment

66
推荐指数
6
解决办法
11万
查看次数

post和pre-increment运算符的以下哪种组合在C中具有未定义的行为?

我读过,有没有人可以解释这些未定义的行为(i = i ++ + ++ i,i = i ++等...)并在浪费超过2小时后尝试理解 "comp.lang.c FAQ"中的序列点时间试图通过gcc编译器解释以下结果.

expression(i=1;j=2)     i       j       k
k = i++ + j++;          2       3       3
k = i++ + ++j;          2       3       4
k = ++i + j++;          2       3       4
k = ++i + ++j;          2       3       5

k = i++ + i++;          3               2
k = i++ + ++i;          3               4
k = ++i + i++;          3               4
k = ++i + ++i;          3               6 …
Run Code Online (Sandbox Code Playgroud)

c expression operators undefined-behavior

4
推荐指数
3
解决办法
1816
查看次数

如何在C中向字符串数组添加元素?

如何在C中向字符串数组添加新元素?

c arrays string

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

C中的后增量和前增量

可能重复:
任何人都可以解释这些未定义的行为(i = i ++ + ++ i,i = i ++等...)

下面有一个代码,我在理解代码的逻辑时遇到了一个非常严重的问题.

#include <stdio.h>
#include <stdlib.h>

int main(void )
{
int i = 1 ;
printf("\n%d %d %d %d\n",++i,i++,i++,++i) ;
return 0 ;
}
Run Code Online (Sandbox Code Playgroud)

我在linux发行版下使用名为Mandriva的gcc编译器.在上面提到的我在printf语句中使用了一个变量的pre和post增量.我应该得到的输出是2 2 3 5,但我得到一个不同的输出.请帮我这个代码.

我觉得这段代码很难.

c

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

使用相同的输入多次调用函数,但获得不同的返回值

我在Ubuntu 14.0.4中使用GNU C. 我编写了一个CRC_XOR()函数,并使用相同的输入参数多次调用它.但它很奇怪,每次通话有时会得到不同的结果.出了什么问题?示例代码在这里:

#include <stdio.h>
#include <stdlib.h>

char CRC_XOR(char *as_Pkt,int ai_len);
void DO_Get_CRC(void);
int main(void)
{
    DO_Get_CRC(); //get 01 00 02 03
    DO_Get_CRC(); //get 01 00 02 03
    DO_Get_CRC(); //get 01 00 02 00  (strange?)  
    DO_Get_CRC(); //get 01 00 02 03
    DO_Get_CRC(); //get 01 00 02 00  (strange?) 
    DO_Get_CRC(); //get 01 00 02 03
    DO_Get_CRC(); //get 01 00 02 00  (strange?) 
    exit(0);
}
/*
    use same input to invoke CRC_XOR()
*/
void DO_Get_CRC(void)
{
    char  ls_pkt[20];
    int   li_idx;
    short …
Run Code Online (Sandbox Code Playgroud)

c crc xor

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