Guten Tag an alle Pointer-Spezialisten.
Eine kurze Frage: Wann * vorm Pointer, wann nicht?
Beispiel:
1 | uint8_t uart_snd_buffer[100];
|
2 |
|
3 | test = build_checksum (uart_snd_buffer, 3);
|
4 |
|
5 | uint8_t build_checksum (uint8_t *data, uint8_t bytecount)
|
6 | {
|
7 | uint8_t checksum = 0;
|
8 | uint8_t counter;
|
9 |
|
10 | for (counter = 0; counter < bytecount; counter++)
|
11 | {
|
12 | checksum ^= data[counter];
|
13 | }
|
14 |
|
15 | return checksum;
|
16 | }
|
Ich übergebe ja ein Array, da wird ja direkt die Adresse übergeben,
nicht der Inhalt. In meiner Funktion "build_checksum" habe ich als
Übergabewert einen Pointer, da ich ja eine Adresse bekomme.
Aber wieso muss ich jetzt bei
1 | checksum ^= data[counter];
|
nicht
1 | checksum ^= *data[counter];
|
? Ich will doch den Inhalt haben.
Manchmal steh ich da echt noch auf dem Schlauch. Der Compiler meckert
mit "*" auf jeden Fall und ohne gehts.