I am very new at C programing language. Now i am learning memory and pointer. I am reading and reading but i am not understanding when to use the pointer and when not to. Just see the following to code. In my first code why we dont use "&" operator on this line "scanf("%2s", card_name)" ? and on my second code why i had to use "&" operator on my "scanf("%i", &decks);" I have passed whole night to understand it. Now i am here to get some good hints to understand the difference..
Code 1
#include <stdio.h>
#include <stdlib.h>
int main(){
char card_name[3];
int count=0;
while (card_name[0]!='X') {
int val=0;
puts("Enter The Card Name:");
scanf("%2s", card_name);
switch (card_name[0]) {
case 'K':
case 'Q':
case 'J':
val=10;
break;
case 'A':
val=11;
break;
case 'X':
continue;
default:
val= atoi(card_name);
break;
}
if (val<2||val>11) {
puts("sorry this is not valid");
break;
}
if (val>=2&&val<=10) {
count++;
printf("Then value is %i And The Count is %i\n", val, count);
break;
}
}
}
}
Code 2
#include <stdio.h>
int main() {
int decks;
puts("Enter a number of decks");
scanf("%i", &decks);
if (decks < 1) {
puts("That is not a valid number of decks");
return 1; }
printf("There are %i cards\n", (decks * 52));
return 0;
}