X-Git-Url: http://git.piffa.net/web?a=blobdiff_plain;f=programming%2Fpointers_c%2Fpointers_3_resetting_before_use%2Fpointers_3_resetting_before_use.ino;fp=programming%2Fpointers_c%2Fpointers_3_resetting_before_use%2Fpointers_3_resetting_before_use.ino;h=02642eb5af15069b54962d3496714d4ea778a93b;hb=e50f2cf8e7402ea56cd01835be9f88c53876bfd1;hp=0000000000000000000000000000000000000000;hpb=f7cdba7df419dcde095f911daa92deb9dcd283ec;p=sketchbook_andrea diff --git a/programming/pointers_c/pointers_3_resetting_before_use/pointers_3_resetting_before_use.ino b/programming/pointers_c/pointers_3_resetting_before_use/pointers_3_resetting_before_use.ino new file mode 100644 index 0000000..02642eb --- /dev/null +++ b/programming/pointers_c/pointers_3_resetting_before_use/pointers_3_resetting_before_use.ino @@ -0,0 +1,49 @@ +/* +Purpose: Illustrate pointer arithmetic + Dr. Purdum, August 20, 2012 + */ +#include +void setup() { + Serial.begin(9600); +} +void loop() { + char buffer[50]; + char *ptr; + int i; + int length; + + strcpy(buffer, "When in the course of human events"); + ptr = buffer; + length = strlen(buffer); + Serial.print("The lvalue for ptr is: "); + Serial.print((unsigned int)&ptr); + Serial.print(" and the rvalue is "); + Serial.println((unsigned int)ptr); + while (*ptr) { + Serial.print(*ptr++); // This actually incrementa ptr* + 34 + } + Serial.println(""); + + Serial.println("Lenght of the string is: "); + Serial.println(length); + Serial.println(""); + + + // ptr = ptr - length ; // Whis would roll back ptr + for (i = 0; i < length; i++) { + Serial.print(*(ptr + i)); + // Serial.print(*(ptr + i- lenght)); // ptr is one lenght up ahead + } + // ptr = buffer ; // Right thing to do: reset the pointer before use + // for (i = 0; i < length; i++) { + // Serial.print(*(ptr + i)) + + + Serial.flush(); + // Make sure all the data is sent... + exit(0); +} + + + +