Я играл с strcmp
, когда заметил это, вот код:
#include <string.h>
#include <stdio.h>
int main(){
//passing strings directly
printf("%d\n", strcmp("ahmad", "fatema"));
//passing strings as pointers
char *a= "ahmad";
char *b= "fatema";
printf("%d\n",strcmp(a,b));
return 0;
}
вывод:
-1
-5
не должен strcmp
работать одинаково? Почему мне присваивается другое значение, когда я передаю строки как "ahmad"
или как char* a = "ahmad"
. Когда вы передаете значения функции, они правильно распределены в стеке?