我正在尝试从我的终端编译和运行一个简单的 C 程序。这是我的代码:
#include <stdio.h>
//integers that are 3n, 3n + 1, and 3n + 2
int main(){
int n,i,a,b,c;
scanf("%d", &n);
for (;n>0;n--) {
scanf("%d", &i);
if(n%3==0){a+=1;}
if(n%3==1){b+=1;}
if(n%3==2){c+=1;}
}
printf("%d %d %d", &a,&b,&c);
return 0;
}
编译一次后,它会生成以下警告:
warning: format specifies type 'int' but the argument has type 'int *' [-Wformat]
我不明白为什么它会生成该警告,因为我没有分配任何指针变量。为什么会生成它?
此外,在编译了几次之后,我的 c 文件变成了符号。我不明白为什么会这样。我的文件名是 73.c,这就是我在终端上编译它的方式:
gcc 73.c -o 73.c
之后,我的文件被转换成这样的东西(这行和行):
œ˙Ì˛����Ä��������Ö� ��������H���__PAGEZERO��������������������������������������������������������(��__TEXT����������������������������������������������������__text����������__TEXT����������0�����˝�������0���������������Ä������������__stubs���������__TEXT����������.������������.��������������Ä�����������__stub_helper���__TEXT����������<�����$�������<���������������Ä������������__cstring�������__TEXT����������`������������`�����������������������������__unwind_info���__TEXT����������l�����H�������l������������������������������__eh_frame������__TEXT����������∏�����@�������∏��������������������������������Ë���__DATA��������������������������������������������������__nl_symbol_ptr�__DATA���������������������������������������������������__la_symbol_ptr�__DATA����������������������������������������������������H���__LINKEDIT������� ������������� ������`��������������������"��Ä0���� ����� ������������� �� ���@ ��0���������∏ ����� !��@���
我真的不知道发生了什么。我已经做了很长时间了,我知道这不应该那么难,但我真的不知道出了什么问题。有人知道会发生什么吗?