#include <stdio.h>
int main(void)
{
int i = 0;
i = i++ + ++i;
printf("%d\n", i); // 3
i = 1;
i = (i++);
printf("%d\n", i); // 2 Should be 1, no ?
volatile int u = 0;
u = u++ + ++u;
printf("%d\n", u); // 1
u = 1;
u = (u++);
printf("%d\n", u); // 2 Should also be one, no ?
register int v = 0;
v = v++ + ++v;
printf("%d\n", v); // 3 (Should be the …Run Code Online (Sandbox Code Playgroud) c increment operator-precedence undefined-behavior sequence-points
我在以下方面使用strcmp
将指针传递给字符串文字,但第二个结果是seg错误.即使我已经确认指针指向正确的字符串文字,我很困惑为什么我得到seg错误..这是代码: -
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char const *args[])
{
char firstName[strlen(*++args)];
strcpy(firstName, *args);
char lastName[strlen(*++args)];
strcpy(lastName, *args);
printf("%s\t%s\n", firstName, lastName);
printf("%d\n", strcmp(firstName, lastName));// this works
printf("%d\n", strcmp(*(--args),*(++args)));//this gives me a seg fault
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)我将它保存为str.c,当我编译它时,首先我得到以下警告:
[Neutron@Discovery examples]$ gcc -Wall str.c -o str
str.c: In function ‘main’:
str.c:15: warning: operation on ‘args’ may be undefined
Run Code Online (Sandbox Code Playgroud)
最后运行它,给出一个seg错误,如下所示
[Neutron@Discovery examples]$ ./str Jimmy Neutron
Jimmy Neutron
-4
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud) 我必须有语法问题,但我无法理解这意味着什么 - 我用Google搜索,但我不明白这个问题的原因.请告诉我函数语法有什么问题
这是错误的行:
else sequence= (Bnum < Anum) ? sequence=Bnum : sequence=Anum;
Run Code Online (Sandbox Code Playgroud)
这是功能
int reduction(int Knum)
{
int sequence=8, Anum=0, Bnum=0;
printf("enter a sequence,to stop print (-1)\n");
while(sequence!=-1)
{
Anum = sequence;
scanf("%d",&sequence);
Bnum = sequence;
if (Anum+Bnum<8)
return 1;
else
sequence= (Bnum < Anum) ? sequence=Bnum : sequence=Anum;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)