Skip to main content

Learning C from Snippets : What does pointer +1 means ?

int main(int argc, char** argv) {
char p[3][4]={{'R','B','R','a'},{'S','R','K','a'},{'A','P','J','a'}};
printf("%d\n",p); //Prints 7339584
printf("%d",p+1); //Prints 7339588 , i.e there is an addition of 4 to the previous number
return 0;
}
int main(int argc, char** argv) {
char p[3][3]={{'R','B','R'},{'S','R','K'},{'A','P','J'}};
printf("%d\n",p); //Prints 7339584
printf("%d",p+1);//Prints 7339583
return 0;
}
_________________________________________________________________________________

int main(int argc, char** argv) {

char p[3][2]={{'R','A'},{'S','R'},{'A','P'}};
printf("%c",*(p+1)); //Prints B
return 0;
}
int main(int argc, char** argv) {
char p[3][3]={{'R','B','R'},{'S','R','K'},{'A','P','J'}};
printf("%c",*(p+1)); //Prints C
return 0;
}
int main(int argc, char** argv) {
char p[3][4]={{'R','B','R','A'},{'S','R','K','J'},{'A','P','J','T'}};
printf("%c",*(p+1)); //Prints D
return 0;
}
_________________________________________________________________________________
int main(int argc, char** argv) {
char p[3][3]={{'R','B','R'},{'S','R','K'},{'A','P','J'}};
printf("%c",*(p+1)+1); //Prints D
return 0;
}
int main(int argc, char** argv) {
char p[3][3]={{'R','B','R'},{'S','Y','K'},{'A','P','J'}};
printf("%c",*(*(p+1)+1)); //Prints Y i.e p[1][1]
return 0;
}
int main(int argc, char** argv) {
char p[3][3]={{'R','B','R'},{'S','R','K'},{'A','P','J'}};
printf("%c",*(*(p+1)+1)+8); //Prints Z i.e R+8= Z (82+8=90)
return 0;
}

Comments

Popular posts from this blog

ASCII to Decimal conversion

#include "msp430.h"                     ; #define controlled include file         NAME    main                    ; module name         PUBLIC  main                    ; make the main label vissible                                         ; outside this module         ORG     0FFFEh         DC16    init                    ; set reset vector to 'init' label         RSEG    CSTACK                  ; pre-declaration of segment         RSEG    CODE      ...

Event Sourcing with CQRS.

  The way event sourcing works with CQRS is to have  part of the application that models updates as writes to an event log or Kafka topic . This is paired with an event handler that subscribes to the Kafka topic, transforms the event (as required) and writes the materialized view to a read store.