{"id":1001,"date":"2015-11-24T15:23:24","date_gmt":"2015-11-24T15:23:24","guid":{"rendered":"http:\/\/coolt.ch\/notizen\/?p=1001"},"modified":"2016-01-23T13:54:22","modified_gmt":"2016-01-23T13:54:22","slug":"per-reference-c-c","status":"publish","type":"post","link":"https:\/\/coolt.ch\/notizen\/per-reference-c-c\/","title":{"rendered":"per Reference C++, per Pointer C, C++"},"content":{"rendered":"<p><strong>Grund<\/strong><br \/>\nWill man <strong>mehrere externe Variable in einer Funktion bearbeiten<\/strong>, hat aber <span style=\"text-decoration: underline;\">nur einen return<\/span> Wert, so gibt man die Adressen dieser Variablen als Paramter mit. Dadurch wird die Variable direkt durch die Funktion bearbeitet. (Die Alternative w\u00e4re, globale Variablen zu definieren und diese zu \u00fcbergeben. Da globale Varibalen vermieden werden sollen, entf\u00e4llt diese Alternative.)<\/p>\n<p><strong>Pointer \u00fcbergeben (C und C++)<br \/>\n<\/strong><\/p>\n<pre class=\"lang:sh decode:true\">function(int *x){do someting}    \/\/ Deklaration: Parameter ist ein Pointer\r\n\r\nint a ;\r\nfunction(&amp;a);                    \/\/ Argument: Adresse der Variable<\/pre>\n<p>Bei der \u00dcbergabe per Pointer, wird keine lokale Kopie des Arguments erstellt, sondern die \u00c4nderungen werden direkt in den Speicher geschrieben.<\/p>\n<p><strong>P<\/strong><strong>er Reference \u00fcbergeben (C++)<br \/>\n<\/strong><\/p>\n<pre class=\"lang:sh decode:true\">function(int <strong>&amp;x<\/strong>);           \/\/ Deklaration: Parameter einer Variable per Ref.\r\nint a;\r\nfunction(<strong>a<\/strong>);                \/\/ Die Adresse des Arguments wird genommen<\/pre>\n<p>Bei per Reference geschieht das selbe wie beim Pointer. Nur sieht man es beim Argument nicht direkt. Die Variable wird &#8222;normal&#8220; \u00fcbergeben.<br \/>\nTrotzdem ist die Wirkung die selbe wie bei der Pointer\u00fcbergabe: Wie bei einer gobalen Varibale wird durch die Funktion die externe Variable ver\u00e4ndert (<a href=\"http:\/\/www.learncpp.com\/cpp-tutorial\/73-passing-arguments-by-reference\/\">LINK)<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Grund Will man mehrere externe Variable in einer Funktion bearbeiten, hat aber nur einen return Wert, so gibt man die Adressen dieser Variablen als Paramter mit. Dadurch wird die Variable direkt durch die Funktion bearbeitet. (Die Alternative w\u00e4re, globale Variablen zu definieren und diese zu \u00fcbergeben. Da globale Varibalen vermieden werden sollen, entf\u00e4llt diese Alternative.) &hellip; <a href=\"https:\/\/coolt.ch\/notizen\/per-reference-c-c\/\" class=\"more-link\"><span class=\"screen-reader-text\">per Reference C++, per Pointer C, C++<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[29,65],"tags":[11,74],"_links":{"self":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/1001"}],"collection":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/comments?post=1001"}],"version-history":[{"count":6,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/1001\/revisions"}],"predecessor-version":[{"id":1141,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/1001\/revisions\/1141"}],"wp:attachment":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/media?parent=1001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/categories?post=1001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/tags?post=1001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}