Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Script- Verständnis- Frage

Frage Entwicklung C und C++

Mitglied: Floppy21

Floppy21 (Level 1) - Jetzt verbinden

09.11.2011, aktualisiert 18:57 Uhr, 2809 Aufrufe

Guten Abend,

im folgenden möchte Ich Euch ein kleines *.c- Script vorstellen, wobei Ich eine Frage zu dessen Funktionsweiße habe.

01.
#include<stdio.h> 
02.
 
03.
 
04.
main() 
05.
06.
	printf("%i", f(3, 9)); 
07.
	 
08.
	system("pause"); 
09.
	return 0; 
10.
11.
 
12.
 
13.
f(unsigned int a, unsigned int b) 
14.
15.
	unsigned int x = 0; 
16.
 
17.
	if(b == 0) 
18.
19.
		return 1; 
20.
21.
	 
22.
	x = f(a, b / 2); 
23.
	x = x * x; 
24.
	if (b % 2 == 1) 
25.
26.
		x = x * a; 
27.
28.
	 
29.
	return x; 
30.
31.
 

Hierzu habe Ich dieses ein wenig abgeändert, um die einzelnen Schritte im Sinne der Variablenveränderungen besser verfolgen zu können.
http://s1.directupload.net/images/111109/wuhmcsb4.png

Mit dem Aufruf der Funktion f wird x der wert aus f(a, b / 2) zugewießen, die rekursion läuft somit solange bis b = 1 ist und halbiert wird und somit
dank des Types Integer als 0 gillt (1 / 2 = 0.5). Als nächstes wird x zu x * x, also x = 1 * 1 = 1. Im nächsten Schritt wird, wenn b eine ungerade Zahl ist-
x = x * a zugewiesen, das heißt x = 1 * 3 = 3. Letztendlich kommt man das erste mal zu 4. (siehe Bild) und mit return x;- wird x (also 3) wiedergegeben.

Somit kommen wir auch schon zu meiner Frage, meiner Meinung nach müsste nach dem ersten 4., die Funktion ihr entgültiges Ende finden,
jedoch ist dies nicht so- Waran liegt das, was habe Ich übersehen?

Vielen Dank für Eure Hilfe und Eure Zeit.


Mit freundlichen Grüßen,
Floppy21


/edit_1, Frage hat sich geklärt
Ähnliche Inhalte
Windows Netzwerk
802.1x Standard. Verständnis Frage (10)

Frage von Haraldger123 zum Thema Windows Netzwerk ...

Windows Server
gelöst GPO - Verständnis-Frage (6)

Frage von MiSt zum Thema Windows Server ...

Windows Server
gelöst Verständnis Frage zum adprep für einen ersatz DC (7)

Frage von WinLiCLI zum Thema Windows Server ...

DNS
Verständnis Frage: DNS Server, DNS Einträge und Domain (4)

Frage von DerHahntrut zum Thema DNS ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Router & Routing
Freigabe aus anderem Netz nicht erreichbar (21)

Frage von McLion zum Thema Router & Routing ...

Windows Server
Kennwort vergessen bei Hyper vserver 2012r (20)

Frage von jensgebken zum Thema Windows Server ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Festplatten, SSD, Raid
Raidcontroller funktioniert nur, wenn unter Legacy-Boot gestartet wird (13)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...