[Powered by Google Translate] [ವಿಭಾಗ 4 - ಹೆಚ್ಚು ಆರಾಮದಾಯಕ]
[ರಾಬ್ ಬೌಡೆನ್ - ಹಾರ್ವರ್ಡ್ ವಿಶ್ವವಿದ್ಯಾಲಯ]
[ಈ CS50 ಹೊಂದಿದೆ. - CS50.TV]
ನೀವು ವ್ಯಕ್ತಿಗಳು ಎಂದು ಗೊತ್ತಿರಲಿಲ್ಲ ಸಂದರ್ಭದಲ್ಲಿ ನಾವು, ಒಂದು ರಸಪ್ರಶ್ನೆ ನಾಳೆ ಹೊಂದಿರುತ್ತವೆ.
ನೀವು ವರ್ಗ ಕಂಡ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ ಅಥವಾ ವರ್ಗ ಕಂಡ ಬೇಕು ಎಲ್ಲವೂ ಮೇಲೆ ಮೂಲಭೂತವಾಗಿ ಇಲ್ಲಿದೆ.
ಎಂದು ಅವರು ಅತ್ಯಂತ ಇತ್ತೀಚಿನ ವಿಷಯ ಮಾಡಿದ್ದರೂ ಸಹ, ಪಾಯಿಂಟರ್ಸ್ ಒಳಗೊಂಡಿದೆ.
ನೀವು ಕನಿಷ್ಟ ಅವುಗಳನ್ನು ಹೆಚ್ಚಿನ ಪ್ರಮಾಣದ ಅರ್ಥ ಬೇಕು.
ನೀವು ರಸಪ್ರಶ್ನೆ ಅರ್ಥ ಮಾಡಿಕೊಳ್ಳುವಂತೆ ಮಾಡಬೇಕು ವರ್ಗ ಸುಮಾರು ಹೋದ ಎಂದು ಏನು.
ನೀವು ಮೇಲೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಆದ್ದರಿಂದ ನೀವು ಅವರನ್ನು ಕೇಳಬಹುದು.
ನೀವು ಹುಡುಗರಿಗೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಲು ಅಲ್ಲಿ ಆದರೆ, ಒಂದು ವಿದ್ಯಾರ್ಥಿ ನೇತೃತ್ವದ ಬಹಳ ಅಧಿವೇಶನ ಏರಲಿದೆ
ಆದ್ದರಿಂದ ಆಶಾದಾಯಕವಾಗಿ ಜನರು ಪ್ರಶ್ನೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ.
ಯಾರಾದರೂ ಪ್ರಶ್ನೆಗಳನ್ನು ಹೊಂದಿದೆ?
ಹೌದು. >> [ವಿದ್ಯಾರ್ಥಿ] ನೀವು ಪಾಯಿಂಟರ್ಸ್ ಮತ್ತೊಮ್ಮೆ ಹೋಗಬಹುದು?
ನಾನು ಪಾಯಿಂಟರ್ಸ್ ಮೇಲೆ ಹೋಗುತ್ತೇನೆ.
ನಿಮ್ಮ ಅಸ್ಥಿರ ಎಲ್ಲಾ ಅಗತ್ಯವಾಗಿ, ಮೆಮೊರಿ ವಾಸಿಸುತ್ತಿದ್ದಾರೆ
ಆದರೆ ಸಾಮಾನ್ಯವಾಗಿ ಆ ಬಗ್ಗೆ ಚಿಂತಿಸಬೇಡಿ ಮತ್ತು ನೀವು x + 2 ಮತ್ತು ವೈ + 3 ಸೇ
ಮತ್ತು ಕಂಪೈಲರ್ ವಿಷಯಗಳನ್ನು ನೀವು ವಾಸಿಸುತ್ತಿದ್ದಾರೆ ಅಲ್ಲಿ ಔಟ್ ಲೆಕ್ಕಾಚಾರ ಕಾಣಿಸುತ್ತದೆ.
ಒಮ್ಮೆ ನೀವು ಈಗ ನೀವು ಸ್ಪಷ್ಟವಾಗಿ ಆ ಮೆಮೊರಿ ವಿಳಾಸಗಳನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ಪಾಯಿಂಟರ್ಸ್ ಮಾತಾಡುತ್ತಿದ್ದೀರಿ.
ಆದ್ದರಿಂದ ಒಂದು ವೇರಿಯೇಬಲ್ ಎಂದಾದರೂ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಒಂದು ವಿಳಾಸದಲ್ಲಿ ಬದುಕಬೇಕು.
ನಾವು ಒಂದು ಪಾಯಿಂಟರ್ ಘೋಷಿಸಲು ಬಯಸಿದರೆ, ಬಗೆ ಕಾಣುವಂತೆ ಹೋಗುತ್ತದೆ?
>> ನಾನು ಪಾಯಿಂಟರ್ ಪುಟ ಘೋಷಿಸಲು ಬಯಸುತ್ತೇನೆ. ರೀತಿಯ ಯಾವ ರೀತಿ ಮಾಡುವುದಿಲ್ಲ?
[ವಿದ್ಯಾರ್ಥಿ] ಇಂಟ್ * ಪು. >> ಹೌದು. ಆದ್ದರಿಂದ ಇಂಟ್ * ಪು.
ಮತ್ತು ಹೇಗೆ ನಾನು X ಬೆಟ್ಟು ಮಾಡುವುದು ಹೇಗೆ? >> [ವಿದ್ಯಾರ್ಥಿ] ವನ್ನಾಗಲಿ.
[ಬೌಡೆನ್] ಆದ್ದರಿಂದ ವನ್ನಾಗಲಿ ಅಕ್ಷರಶಃ ಆಯೋಜಕರು ವಿಳಾಸವನ್ನು ಕರೆಯಲಾಗುತ್ತದೆ.
ನಾನು ಹೇಳಲು ಮತ್ತು ಮಾಡುವಾಗ X ಇದು ವ್ಯತ್ಯಯ X ನೆನಪಿಗಾಗಿ ವಿಳಾಸಕ್ಕೆ ಪ್ರಕಟಗೊಳ್ಳಲಿದೆ.
ಈಗ ನಾನು ಪಾಯಿಂಟರ್ ಪುಟ ಹೊಂದಿವೆ, ಮತ್ತು ಎಲ್ಲಿಯಾದರೂ ನನ್ನ ಕೋಡ್ ನಾನು * ಪುಟ ಬಳಸಬಹುದು
ಅಥವಾ ನಾನು X ಬಳಸಬಹುದಿತ್ತು ಮತ್ತು ನಿಖರವಾದ ಒಂದೇ ಆಗಿರುತ್ತದೆ.
(* ಪು). ಈ ಮಾಡುತ್ತಿರುವುದಾದರೂ ಏನು? ಆ ನಕ್ಷತ್ರ ಅರ್ಥವೇನು?
[ವಿದ್ಯಾರ್ಥಿ] ಇದು ಆ ಸಮಯದಲ್ಲಿ ಒಂದು ಮೌಲ್ಯ ಎಂದರ್ಥ. >> ಹೌದು.
ನಾವು ನೋಡಿದರೆ ಅದು ಚಿತ್ರಗಳು ಪಡೆಯಲು ತುಂಬಾ ಉಪಯುಕ್ತವಾಗಿದೆ
ಈ ಮೌಲ್ಯವು 4 ಹೊಂದಿರುತ್ತವೆ ಸಂಭವಿಸಿದರೆ ಅದು x ಗಾಗಿ ಮೆಮೊರಿಯನ್ನು ಸ್ವಲ್ಪ ಬಾಕ್ಸ್, ಅಲ್ಲಿ
ನಂತರ ನಾವು, ಪು ಮೆಮೊರಿಯ ಒಂದು ಸಣ್ಣ ಬಾಕ್ಸ್ ಹೊಂದಿವೆ
ಆದ್ದರಿಂದ x ಗೆ ಪು ಅಂಕಗಳನ್ನು, ಆದ್ದರಿಂದ ನಾವು ಪು X ಒಂದು ಬಾಣದ ಸೆಳೆಯುತ್ತವೆ.
ಆದ್ದರಿಂದ ನಾವು ಯಾವಾಗ * ಪುಟ ನಾವು ಪು ಎಂದು ಬಾಕ್ಸ್ ಹೋಗಿ ಹೇಳುತ್ತಿದ್ದಾರೆಂಬುದನ್ನು.
ಸ್ಟಾರ್ ಬಾಣದ ಅನುಸರಿಸಲು ಮತ್ತು ನೀವು ಹಕ್ಕನ್ನು ಅದು ಪೆಟ್ಟಿಗೆಯು ಬಯಸುತ್ತೀರಿ ಯಾವುದೇ.
ಹಾಗಾಗಿ * ಪು = 7 ಹೇಳಬಹುದು; ಮತ್ತು X ಮತ್ತು 7 ಬದಲಾವಣೆಯನ್ನು ಎಂದು ಬಾಕ್ಸ್ ಹೋಗುತ್ತದೆ.
ಅಥವಾ ನಾನು ಹೇಳಬಹುದು ಇಂಟ್ z = * ಪು * 2; ಗೊಂದಲ ಎಂದು ಅದು ನಕ್ಷತ್ರ, ನಕ್ಷತ್ರ ಕಾರಣ.
ಒಂದು ನಕ್ಷತ್ರ ಪು dereferencing ಇದೆ, ಇತರ ನಕ್ಷತ್ರದ 2 ರಿಂದ ಗುಣಿಸಿದಾಗ ಇದೆ.
ನಾನು ಹಾಗೆಯೇ X ನೊಂದಿಗೆ * ಪುಟ ಬದಲಾಯಿಸಲು ಎಂದು ಗಮನಿಸಿ.
ನೀವು ಅದೇ ರೀತಿಯಲ್ಲಿ ಅವುಗಳನ್ನು ಬಳಸಬಹುದು.
ನಂತರ ನಾನು ಸಂಪೂರ್ಣ ಹೊಸ ವಿಷಯ ಗೆ ಪು ಪಾಯಿಂಟ್ ಹೊಂದಿವೆ.
ನಾನು ಹೇಳಬಹುದು ಪು = &z;
ಈಗ x ಗೆ ಇನ್ನು ಮುಂದೆ ಅಂಕಗಳನ್ನು P ಇದು z ಸೂಚಿತವಾಗಿರುತ್ತದೆ.
ಮತ್ತು ನಾನು * ಪು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಇದು z ಮಾಡುವುದರಿಂದ ಅದೇ ಇಲ್ಲಿದೆ.
ನಾವು ಕಾರ್ಯಗಳನ್ನು ತೊಡಗಿಸಿಕೊಳ್ಳುವುದರಿಂದ ಆರಂಭಿಸಲು ಹಾಗೆ ಈ ಬಗ್ಗೆ ಉಪಯುಕ್ತ ವಿಷಯ.
>> ಇದು ಏನೋ ಆ ಬಿಂದುಗಳು ಪಾಯಿಂಟರ್ ಘೋಷಿಸಲು ಅನುಪಯುಕ್ತ ಭಾಸವಾಗುತ್ತದೆ
ತದನಂತರ ನೀವು ಅದನ್ನು dereferencing ನೀವು
ನಿಮ್ಮೊಂದಿಗೆ ಆರಂಭಿಸಲು ಮೂಲ ವೇರಿಯಬಲ್ ಬಳಸಲಾಗುತ್ತದೆ ಎಂದು ಮಾಡುವಾಗ.
ಆದರೆ ನೀವು ಕಾರ್ಯಗಳನ್ನು ಮನಸ್ಸು ಮಾಡಿದಾಗ - ಆದ್ದರಿಂದ, ನಾವು ಕೆಲವು ಫಂಕ್ಷನ್, ಇಂಟ್ foo ಹೊಂದಿರುತ್ತವೆ ಹೇಳಲು ಅವಕಾಶ
ಒಂದು ಪಾಯಿಂಟರ್ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಕೇವಲ * ಪು = 6 ಮಾಡುತ್ತದೆ;
ನಾವು ಸ್ವಾಪ್ ಜೊತೆ ಮೊದಲು ನೋಡಿದ ಹಾಗೆ, ನೀವು ಪರಿಣಾಮಕಾರಿ ಸ್ವಾಪ್ ಮತ್ತು ಒಂದು ಪ್ರತ್ಯೇಕ ಕಾರ್ಯ ಸಾಧ್ಯವಿಲ್ಲ
ಸಿ ಎಲ್ಲವನ್ನೂ ಯಾವಾಗಲೂ ಮೌಲ್ಯ ಮೂಲಕ ಹಾದುಹೋಗುವ ಏಕೆಂದರೆ ಕೇವಲ ಪೂರ್ಣಾಂಕಗಳ ಸಾಗಿಸುವುದರಿಂದ.
ನೀವು ಪಾಯಿಂಟರ್ಸ್ ಹಾದುಹೋಗುವ ನೀವು ಸಹ ನೀವು ಮೌಲ್ಯವನ್ನು ಮೂಲಕ ಹಾದುಹೋಗುವ ನೀವು.
ಇದು ಕೇವಲ ಆದ್ದರಿಂದ ಆ ಮೌಲ್ಯಗಳನ್ನು ಮೆಮೊರಿ ವಿಳಾಸಗಳನ್ನು ಎಂದು ಸಂಭವಿಸುತ್ತದೆ.
ಆದ್ದರಿಂದ ನಾನು ಹೇಳಲು foo (ಪುಟ); ನಾನು ಕಾರ್ಯ foo ​​ಆಗಿ ಪಾಯಿಂಟರ್ ಹಾದುಹೋಗುವ ನಾನು
ತದನಂತರ foo * ಪು = 6 ಮಾಡುವುದರಿಂದ ಇದೆ;
ಒಳಗೆ ಆ ಕ್ರಿಯೆಯ ಆದ್ದರಿಂದ, * ಪು, ಇನ್ನೂ X ಗೆ ಸಮನಾಗಿರುತ್ತದೆ
ಆ ಕಾರ್ಯದ ಒಳಗೆ ಕ್ಷೇತ್ರ ಏಕೆಂದರೆ ಆದರೆ ನಾನು ಆ ಕಾರ್ಯದ ಒಳಗೆ X ಬಳಸುವಂತಿಲ್ಲ.
ಆದ್ದರಿಂದ * ಪು = 6 ನಾನು ಮತ್ತೊಂದು ಕ್ರಿಯೆ ಒಂದು ಸ್ಥಳೀಯ ವೇರಿಯಬಲ್ ಪ್ರವೇಶಿಸಲು ಏಕೈಕ ಮಾರ್ಗವಾಗಿದೆ.
ಅಥವಾ, ಮತ್ತು, ಪಾಯಿಂಟರ್ಸ್ ನಾನು ಮತ್ತೊಂದು ಕ್ರಿಯೆ ಒಂದು ಸ್ಥಳೀಯ ವೇರಿಯಬಲ್ ಪ್ರವೇಶಿಸಲು ಏಕೈಕ ಮಾರ್ಗವಾಗಿದೆ.
[ವಿದ್ಯಾರ್ಥಿ] ಲೆಟ್ಸ್ ನೀವು ಪಾಯಿಂಟರ್ ಮರಳಲು ಬಯಸಿದ್ದ ಹೇಳುತ್ತಾರೆ. ನೀವು ಹೇಗೆ ನಿಖರವಾಗಿ ಹಾಗೆ ಮಾಡಬೇಡಿ?
[ಬೌಡೆನ್] ಇಂಟ್ Y = 3 ರಷ್ಟರಲ್ಲೇ ಒಂದು ಪಾಯಿಂಟರ್ ಹಿಂತಿರುಗಿ; ರಿಟರ್ನ್ ಮತ್ತು ವೈ? >> [ವಿದ್ಯಾರ್ಥಿ] ಹೌದು.
[ಬೌಡೆನ್] ಸರಿ. ನೀವು ಹಾಗೆ ಮಾಡಬಾರದು. ಈ ಕಳಪೆಯಾಗಿದೆ.
ನಾನು ಈ ಉಪನ್ಯಾಸ ಸ್ಲೈಡ್ಗಳು ನೋಡಿದ ಭಾವಿಸುತ್ತೇನೆ ನೀವು ಮೆಮೊರಿ ಈ ಇಡೀ ಚಿತ್ರದಲ್ಲಿ ನೋಡಿದ ಪ್ರಾರಂಭಿಸಿದರು
ಅಲ್ಲಿ ಅಪ್ ಇಲ್ಲಿ ನೀವು ಮೆಮೊರಿ ವಿಳಾಸಕ್ಕೆ 0 ಪಡೆದಿರುವಿರಿ
ಮತ್ತು ಕೆಳಗೆ ಇಲ್ಲಿ ನೀವು 32 ಮೆಮೊರಿಯ ವಿಳಾಸಕ್ಕೆ 4 ಸಂಗೀತಗೋಷ್ಠಿ ಅಥವಾ 2 ಹೊಂದಿರುತ್ತವೆ.
ಆದ್ದರಿಂದ ನೀವು ಕೆಲವು ಸಂಗತಿಗಳನ್ನು ಮತ್ತು ಕೆಲವು ಸಂಗತಿಗಳನ್ನು ಪಡೆದಿರುವಿರಿ ತದನಂತರ ನಿಮ್ಮ ಸ್ಟಾಕ್ ಹೊಂದಿವೆ
ಮತ್ತು ನೀವು ನೀವು ಬೆಳೆದ ಬಗ್ಗೆ ಕಲಿಯಲು ಪ್ರಾರಂಭಿಸಿದರು ನಿಮ್ಮ ರಾಶಿ ಮಾಡಲೇಬೇಕು.
[ವಿದ್ಯಾರ್ಥಿ] ಸ್ಟಾಕ್ ಮೇಲೆ ರಾಶಿ ಅಲ್ಲ?
>> ಹೌದು. ರಾಶಿ ಮೇಲೆ, ಇದು ಅಲ್ಲ? >> [ವಿದ್ಯಾರ್ಥಿ] ಸರಿ, ಅವರು ಮೇಲೆ 0 ಪುಟ್.
[ವಿದ್ಯಾರ್ಥಿ] ಓಹ್, ಅವರು ಮೇಲೆ 0 ಪುಟ್. >> [ವಿದ್ಯಾರ್ಥಿ] ಓಹ್, ಸರಿ.
ಹಕ್ಕುತ್ಯಾಗ: ಎನಿವೇರ್ CS50 ನಿಮಗೆ ಈ ರೀತಿ ನೋಡಲು ನೀನು. >> [ವಿದ್ಯಾರ್ಥಿ] ಸರಿ.
ಇದು ಕೇವಲ ಅದನ್ನು ನೀವು ಮೊದಲು ರಾಶಿಯನ್ನು ನೋಡಿದ ಮಾಡಿದಾಗ
ನೀವು ಪರಸ್ಪರ ಮೇಲೆ ವಿಷಯಗಳನ್ನು ಪೇರಿಸಿ ನಗರದ ಒಂದು ಸ್ಟಾಕ್ ನಗರದ ಯಾವಾಗ ಇಷ್ಟ.
ನಾವು ಸ್ಟಾಕ್ ಒಂದು ಸ್ಟಾಕ್ ಸಾಮಾನ್ಯವಾಗಿ ಬಯಸುವ ರೀತಿಯ ಬೆಳೆಯುತ್ತಿರುವುದನ್ನು ಆದ್ದರಿಂದ ಸುತ್ತ ಈ ತಿರುಗಿಸಿಕೊಳ್ಳುವ ಒಲವು
ಬದಲಿಗೆ ಸ್ಟಾಕ್ ನ ನೇತಾಡಿಸಿಕೊಂಡಿದ್ದಾನೆ. >> [ವಿದ್ಯಾರ್ಥಿ] ಅಲ್ಲದಿದ್ದರೂ heaps ತಾಂತ್ರಿಕವಾಗಿ, ಬಹಳ ಬೆಳೆಯಬೇಕಾಗಿದೆ ಡು?
ಅದನ್ನು ಬೆಳೆಯಲು ಅದಕ್ಕೆ ನೀವು ಅರ್ಥವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ.
ಸ್ಟ್ಯಾಕ್ ಮತ್ತು ಹೀಪ್ ಯಾವಾಗಲೂ ವಿರುದ್ಧ ದಿಕ್ಕುಗಳಲ್ಲಿ ಬೆಳೆಯುತ್ತವೆ.
ಒಂದು ಸ್ಟಾಕ್ ಯಾವಾಗಲೂ ಬೆಳೆಯುವ ಎಂದು ಅರ್ಥದಲ್ಲಿ ಬೆಳೆಯುತ್ತಿರುವುದನ್ನು
ಹೆಚ್ಚಿನ ಸ್ಮರಣೆ ವಿಳಾಸಗಳು, ಮತ್ತು ರಾಶಿ ಕೆಳಗೆ ಬೆಳೆಯುತ್ತಿದೆ ಕಡೆಗೆ
ಅದಕ್ಕಿಂತ ಕಡಿಮೆ ಮೆಮೊರಿ ವಿಳಾಸಗಳನ್ನು ಕಡೆಗೆ ಹೆಚ್ಚುತ್ತಿರುವ.
ಹೀಗಾಗಿ 0 ಮತ್ತು ಕೆಳಗೆ ಹೆಚ್ಚಿನ ಮೆಮೊರಿ ವಿಳಾಸಗಳನ್ನು ಹೊಂದಿದೆ.
ಅವರು ವಿರುದ್ಧ ದಿಕ್ಕಿನಲ್ಲಿ, ಬೆಳೆಯುತ್ತಿರುವ ನೀವು ಎರಡೂ.
[ವಿದ್ಯಾರ್ಥಿ] ನೀವು ಕೆಳಗೆ ಸ್ಟಾಕ್ ಪುಟ್ ಹೇಳಿದರು ಏಕೆಂದರೆ ನಾನು ಅರ್ಥ
ಇದು ಸ್ಟಾಕ್ ಒಂದು ರಾಶಿ ಮೇಲೆ ಪ್ರಾರಂಭಿಸಲು ಕಾರಣ ಮತ್ತಷ್ಟು ಗ್ರಹಿಸುವಂತೆ ತೋರುತ್ತದೆ, ಏಕೆಂದರೆ
ರಾಶಿ, ತುಂಬಾ ಸ್ವತಃ ಮೇಲೆ ಆದ್ದರಿಂದ that's ಇಲ್ಲಿದೆ - >> ಹೌದು.
ನೀವು ಸ್ಟಾಕ್ ಹೆಚ್ಚಾಗಿ ಬೆಳೆಯುವ ಮತ್ತು ದೊಡ್ಡ ಮಾಹಿತಿ ರಾಶಿ ನಗರದ, ಆದರೆ.
ಆದ್ದರಿಂದ ಸ್ಟಾಕ್ ನಾವು ರೀತಿಯ ಬೆಳೆಯುವ ತೋರಿಸಲು ಬಯಸುವ ಒಂದಾಗಿದೆ.
ಆದರೆ ಎಲ್ಲೆಡೆ ನೀವು ಇಲ್ಲದಿದ್ದರೆ ನೋಡಲು ಮೇಲ್ಭಾಗದಲ್ಲಿ ವಿಳಾಸಕ್ಕೆ 0 ತೋರಿಸಲು ಹೋಗುತ್ತದೆ
ಮತ್ತು ಕೆಳಭಾಗದಲ್ಲಿ ಅತ್ಯಧಿಕ ಮೆಮೊರಿ ವಿಳಾಸ, ಈ ಮೆಮೊರಿಯ ನಿಮ್ಮ ಸಾಮಾನ್ಯ ದೃಷ್ಟಿಕೋನ.
>> ನೀವು ಒಂದು ಪ್ರಶ್ನೆಯನ್ನು ಹೊಂದಿದ್ದೀರಾ?
[ವಿದ್ಯಾರ್ಥಿ] ನೀವು ನಮಗೆ ರಾಶಿ ಬಗ್ಗೆ ಹೇಳಬಲ್ಲಿರಾ?
ಹೌದು. ನಾನು ಎರಡನೇ ಆ ಪಡೆಯುತ್ತೀರಿ.
ಮೊದಲ, ಮತ್ತು Y ಹಿಂದಿರುಗಿದ ಏಕೆ ಹಿಂದಕ್ಕೆ ಹೋಗಿ, ಒಂದು ಕೆಟ್ಟ ವಿಷಯ
ಸ್ಟಾಕ್ ನಲ್ಲಿ ಕಾರ್ಯಗಳನ್ನು ಎಲ್ಲಾ ಪ್ರತಿನಿಧಿಸುವ ಸ್ಟಾಕ್ ಚೌಕಟ್ಟುಗಳ ಕನಸುಗಳಿವೆ ಹೊಂದಿವೆ
ಎಂಬ ಮಾಡಲಾಗಿದೆ.
ಹಿಂದಿನ ವಿಷಯಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ ಆದ್ದರಿಂದ, ನಿಮ್ಮ ಸ್ಟಾಕ್ ಮೇಲೆ ಯಾವಾಗಲೂ ಪ್ರಮುಖ ಕಾರ್ಯ ಎಂದು ಹೋಗುತ್ತದೆ
ಎಂದು ಕರೆಯುತ್ತಾರೆ ಎಂದು ಮೊದಲ ಕ್ರಿಯೆ ಯ.
ತದನಂತರ ನೀವು ಮತ್ತೊಂದು ಕ್ರಿಯೆ ಕರೆ ಮಾಡಿದಾಗ, ಸ್ಟಾಕ್ ಕೆಳಗೆ ಬೆಳೆಯಲು ಹೋಗುತ್ತದೆ.
ನಾನು ಕೆಲವು ಫಂಕ್ಷನ್, foo, ಕಾಲ್ ಮತ್ತು ತನ್ನ ಸ್ವಂತ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಗೆಟ್ಸ್ ಹಾಗಾಗಿ,
ಇದು ಕೆಲವು ಫಂಕ್ಷನ್, ಬಾರ್ ಕರೆಯಬಹುದು; ತನ್ನ ಸ್ವಂತ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಪಡೆಯುತ್ತದೆ.
ಮತ್ತು, ಬಾರ್ ಪುನರಾವರ್ತಿತ ಇರಬಹುದು ಮತ್ತು ಅದು ಸ್ವತಃ ಕರೆಯಬಹುದು
ಮತ್ತು ಆದ್ದರಿಂದ ಬಾರ್ ಎರಡನೇ ಕರೆ ತನ್ನ ಸ್ವಂತ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಕಾಣುವುದು ನಿಗದಿಪಡಿಸಲಾಗಿದೆ.
ಆದ್ದರಿಂದ ಈ ಸ್ಟಾಕ್ ಚೌಕಟ್ಟುಗಳು ಹೋಗುವ ಯಾವ ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳ ಎಲ್ಲಾ
ಮತ್ತು ಆ ಕಾರ್ಯವನ್ನು ವಾದಗಳನ್ನು ಎಲ್ಲಾ -
ಈ ಕಾರ್ಯಕ್ಕೆ ಸ್ಥಳೀಯವಾಗಿ ಕ್ಷೇತ್ರ ಯಾವುದೇ ವಿಷಯಗಳನ್ನು ಈ ಸ್ಟಾಕ್ ಚೌಕಟ್ಟುಗಳು ರಲ್ಲಿ ಹೋಗಿ.
ಆದ್ದರಿಂದ, ನಾನು ಬಾರ್ ರೀತಿಯ ಕಾರ್ಯ ಹೇಳಿದರು ಅರ್ಥ
ನಾನು ಕೇವಲ ಒಂದು ಪೂರ್ಣಾಂಕ ಘೋಷಿಸಲು ಮತ್ತು ನಂತರ ಪೂರ್ಣಾಂಕ ಒಂದು ಪಾಯಿಂಟರ್ ಮರಳಿ ಪಡೆಯಲಿದ್ದೇನೆ.
ಆದ್ದರಿಂದ Y ಅಲ್ಲಿ ವಾಸಿಸುವ ಇಲ್ಲ?
[ವಿದ್ಯಾರ್ಥಿ] ವೈ ಬಾರ್ ವಾಸಿಸುತ್ತಾರೆ. >> [ಬೌಡೆನ್] ಹೌದು.
ಎಲ್ಲೋ ಮೆಮೊರಿ ಈ ಕಡಿಮೆ ಚೌಕದಲ್ಲಿ ಅದು ವೈ ಹೊಂದಿರುವ littler ಚದರ ಹೊಂದಿದೆ.
ನಾನು ಹಿಂದಿರುಗಿ & ಲಿಸಿ, ನಾನು ಮೆಮೊರಿ ಈ ಕಡಿಮೆ ಬ್ಲಾಕ್ಗೆ ಒಂದು ಪಾಯಿಂಟರ್ ಹಿಂದಿರುಗಿದ ನುಡಿದರು.
ಆದರೆ ನಂತರ ಒಂದು ಫಂಕ್ಷನ್ ಮರಳುತ್ತದೆ, ಇದರ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಸ್ಟಾಕ್ ಆಫ್ ಬೇರ್ಪಡಿಸಿದ ಮುಟ್ಟುತ್ತದೆ.
ಇದು ಸ್ಟಾಕ್ ಕರೆಯಲಾಗುತ್ತದೆ ಏಕೆ ಮತ್ತು ಇಲ್ಲಿದೆ.
ನೀವು ಏನು ತಿಳಿದಿದ್ದರೆ ಅದು ಸ್ಟಾಕ್ ಅಕ್ಷಾಂಶ ರಚನೆ ಹೀಗಿದೆ.
ಅಥವಾ ಟ್ರೇನಲ್ಲಿ ಒಂದು ಸ್ಟಾಕ್ ಹಾಗೆ ಯಾವಾಗಲೂ ಉದಾಹರಣೆ
ಮುಖ್ಯ ಕೆಳಭಾಗದಲ್ಲಿ ಹೋಗುತ್ತಿದ್ದೇವೆ, ನಂತರ ನೀವು ಕರೆ ಮೊದಲ ಕಾರ್ಯ, ಆ ಮೇಲೆ ಹೋಗುತ್ತಿದ್ದೇವೆ ಇದೆ
ನೀವು ಕರೆಯಲಾಗುತ್ತದೆ ಮಾಡಿದ ಎಲ್ಲಾ ಕಾರ್ಯಗಳನ್ನು ನೀಡುತ್ತದೆ ರವರೆಗೆ ಮತ್ತು ನೀವು ಮುಖ್ಯ ಮರಳಿ ಪಡೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ
ಇದು ಮೇಲ್ಬಾಗದಲ್ಲಿ ಮಾಡಲಾಗಿದೆ.
>> ನೀವು ಮಾಡಿದರೆ [ವಿದ್ಯಾರ್ಥಿ] ಆದ್ದರಿಂದ & ಲಿಸಿ, ಆ ಮೌಲ್ಯವನ್ನು ಸೂಚನೆ ಇಲ್ಲದೆ ಬದಲಾವಣೆಗೆ ಒಳಪಟ್ಟಿರುತ್ತದೆ ಹಿಂತಿರುಗಿ.
ಹೌದು, it's - >> ಅದು ಬರೆಯಲ್ಪಟ್ಟಿತೆಂದರೆ ಆಗಿರಬಹುದು [ವಿದ್ಯಾರ್ಥಿ]. >> ಹೌದು.
ನೀವು ಪ್ರಯತ್ನಿಸಿ ವೇಳೆ ಮತ್ತು - ಇದು ಸಂಪೂರ್ಣವಾಗಿ ನ -
ಇದು ಒಂದು ಪಾಯಿಂಟರ್ ಹಿಂದಿರುಗಿದ ವಿಶೇಷವೇನು ಏಕೆಂದರೆ ಇದು, ಒಂದು int * ಬಾರ್ ಎಂದು
ಅದರ ಲಾಭ ರೀತಿಯ ಇಂಟ್ * ಹೊಂದಿದೆ.
ಈ ಕ್ರಿಯೆಯ ಮರಳುವ ಮೌಲ್ಯವನ್ನು ಬಳಸಲು ಪ್ರಯತ್ನಿಸಿ, ಅದು ಸ್ಪಷ್ಟೀಕರಿಸದ ವರ್ತನೆಯನ್ನು ಇಲ್ಲಿದೆ
ಆ ಪಾಯಿಂಟರ್ ಕೆಟ್ಟ ಮೆಮೊರಿ ಸೂಚಿತವಾಗಿರುತ್ತದೆ ಕಾರಣ. >> [ವಿದ್ಯಾರ್ಥಿ] ಸರಿ.
ಆದ್ದರಿಂದ ಯಾವ ವೇಳೆ, ಉದಾಹರಣೆಗೆ, ನೀವು ಡಿಕ್ಲೇರ್ಡ್ ಇಂಟ್ * Y = malloc (sizeof (ಇಂಟ್))?
ಆ ಉತ್ತಮ. ಹೌದು.
[ವಿದ್ಯಾರ್ಥಿ] ನಮ್ಮ ಮರುಬಳಕೆ ಬಿನ್ ವಿಷಯಗಳನ್ನು ಎಳೆಯಿರಿ ನಾವು ಹೇಗೆ ಬಗ್ಗೆ ಮಾತನಾಡಿದರು
ನಿಜವಾಗಿ ಅಳಿಸಿಹಾಕಿತು ಇಲ್ಲ; ನಾವು ಅವರ ಪಾಯಿಂಟರ್ಸ್ ಕಳೆದುಕೊಳ್ಳಬಹುದು.
ಆದ್ದರಿಂದ ಈ ಸಂದರ್ಭದಲ್ಲಿ ನಾವು ವಾಸ್ತವವಾಗಿ ಮೆಮೊರಿಯಲ್ಲಿ ಇನ್ನೂ ಮೌಲ್ಯ ಅಳಿಸಿ ಅಥವಾ ಇಲ್ಲ?
ಬಹಳ ಮಟ್ಟಿಗೆ, ಇದು ಇನ್ನೂ ಎಂದು ವಿಶೇಷವೇನು.
ಆದರೆ ಈಗ ನಾವು ಕೆಲವು ಇತರ ಕಾರ್ಯ, ಬಾಜ್ ಕರೆಯಲು ಸಂಭವಿಸಿ ಹೇಳುತ್ತಾರೆ.
ಬಾಜ್ ಇಲ್ಲಿ ತನ್ನ ಸ್ವಂತ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಕಾಣುವುದು ಇದೆ.
ಇದು, ಈ ವಿಷಯವನ್ನು ಎಲ್ಲ ಮೇಲೆಯೆ ಎಂದು ವಿಶೇಷವೇನು
ತದನಂತರ ನೀವು ನಂತರ, ನೀವು ಮೊದಲು ಕೊಂಡಿರುವ ಪಾಯಿಂಟರ್ ಪ್ರಯತ್ನಿಸಿ ಮತ್ತು ಬಳಸುತ್ತಿದ್ದರೆ
ಅದೇ ಮೌಲ್ಯವು ಹಿಂದಿರುಗಬಹುದೆಂದು.
ನೀವು ಕಾರ್ಯ ಬಾಜ್ ಕರೆಯಲಾಗುತ್ತದೆ ಏಕೆಂದರೆ ಕೇವಲ ಬದಲಾಗಿದೆ ಹೋಗುವುದಿಲ್ಲ.
[ವಿದ್ಯಾರ್ಥಿ] ಆದರೆ ನಾವು ಇನ್ನೂ 3 ಬಾಗಿಯಾಗಬಹುದು ಕಾರಣ?
[ಬೌಡೆನ್] ಬಹುಶಃ, ನೀವು ಬಯಸುವ.
ಆದರೆ ನೀವು ಆ ಅವಲಂಬಿಸದ. ಸಿ ಕೇವಲ ಸ್ಪಷ್ಟೀಕರಿಸದ ವರ್ತನೆಯನ್ನು ಹೇಳುತ್ತಾರೆ.
>> [ವಿದ್ಯಾರ್ಥಿ] ಓಹ್, ಅದು. ಸರಿ.
Malloc ಬಳಕೆಗೆ ಬರುತ್ತದೆ ಅಲ್ಲಿ ನೀವು ಒಂದು ಪಾಯಿಂಟರ್ ಮರಳಲು ಬಯಸಿದಾಗ, ಇದು.
ನಾನು ಬರೆಯುತ್ತಿದ್ದೇನೆ, ಕೇವಲ malloc ಮರಳಿ (3 * sizeof (ಇಂಟ್)).
ನಾವು ಎರಡನೇ ಹೆಚ್ಚು malloc ಮೇಲೆ ಹೋಗುತ್ತೇನೆ, ಆದರೆ malloc ಕಲ್ಪನೆ ನಿಮ್ಮ ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳು ಎಲ್ಲಾ
ಯಾವಾಗಲೂ ಸ್ಟಾಕ್ ಹೋಗುತ್ತಾರೆ.
Malloced ಎಂದು ಏನು ರಾಶಿ ಮೇಲೆ ಹೋಗುತ್ತದೆ, ಮತ್ತು ಇದು ಶಾಶ್ವತವಾಗಿ ಮತ್ತು ಯಾವಾಗಲೂ ರಾಶಿ ಮೇಲೆ ಕಾಣಿಸುತ್ತದೆ
ನೀವು ಸ್ಪಷ್ಟವಾಗಿ ಕ್ಲಿಕ್ ರವರೆಗೆ.
ಆದ್ದರಿಂದ ಈ ಸಂದರ್ಭದಲ್ಲಿ ನೀವು malloc ಏನೋ, ಅದು ಕಾರ್ಯವನ್ನು ಮರಳುತ್ತದೆ ನಂತರ ಬದುಕುಳಿಯುವ ವಿಶೇಷವೇನು ಎಂದರ್ಥ.
ಕಾರ್ಯಕ್ರಮವನ್ನು ನಡೆಸುವ ನಿಲ್ದಾಣಗಳು ನಂತರ [ವಿದ್ಯಾರ್ಥಿ] ಇದು ಬದುಕಲು ವಿಲ್? >> ನಂ
ಸರಿ, ಆದ್ದರಿಂದ ಪ್ರೋಗ್ರಾಂ ಎಲ್ಲಾ ರೀತಿಯಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಮಾಡಲಾಗುತ್ತದೆ ರವರೆಗೆ ಇರುತ್ತದೆ ಹೋಗುವುದಿಲ್ಲ. >> ಹೌದು.
ನಾವು ಕಾರ್ಯಕ್ರಮವನ್ನು ನಡೆಸುವ ನಿಂತಾಗ ಏನಾಗುತ್ತದೆ ವಿವರಗಳನ್ನು ಮೇಲೆ ಹೋಗಬಹುದು.
ನೀವು ನಾನು ನೆನಪಿನಲ್ಲಿ ಬೇಕು, ಆದರೆ ಸಂಪೂರ್ಣವಾಗಿ ಪ್ರತ್ಯೇಕ ವಿಷಯ.
[ವಿದ್ಯಾರ್ಥಿ] ಆದ್ದರಿಂದ malloc ಒಂದು ಪಾಯಿಂಟರ್ ರಚಿಸುತ್ತದೆ? >> ಹೌದು.
Malloc - >> [ವಿದ್ಯಾರ್ಥಿ] ನಾನು malloc ಒಂದು ಪಾಯಿಂಟರ್ ಬಳಸಬಹುದಾದ ಮೆಮೊರಿಯ ಒಂದು ಬ್ಲಾಕ್ ಹೆಸರಿಸುತ್ತದೆ ಭಾವಿಸುತ್ತೇನೆ.
[ಬೌಡೆನ್] ನಾನು ಮತ್ತೆ ಆ ರೇಖಾಚಿತ್ರ ಬಯಸುವ. >> [ವಿದ್ಯಾರ್ಥಿ] ಆದ್ದರಿಂದ ಈ ಕಾರ್ಯ ಆದರೂ ಕೆಲಸ?
[ವಿದ್ಯಾರ್ಥಿ] ಹೌದು, malloc ನೀವು ಬಳಸಬಹುದಾದ ಮೆಮೊರಿಯ ಒಂದು ಬ್ಲಾಕ್ ಹೆಸರಿಸುತ್ತದೆ,
ತದನಂತರ ಆ ಮೆಮೊರಿಯ ಮೊದಲ ಬ್ಲಾಕ್ನ ವಿಳಾಸಕ್ಕೆ ಹಿಂದಿರುಗಿಸುತ್ತದೆ.
>> [ಬೌಡೆನ್] ಹೌದು. ಆದ್ದರಿಂದ ನೀವು malloc, ನೀವು ಮೆಮೊರಿ ಕೆಲವು ಬ್ಲಾಕ್ ಧರಿಸುವುದನ್ನು ನೀವು
ಆ ರಾಶಿ ಪ್ರಸ್ತುತ ಇಲ್ಲಿದೆ.
ರಾಶಿ ತುಂಬಾ ಸಣ್ಣ ವೇಳೆ, ನಂತರ ರಾಶಿ ಕೇವಲ ಬೆಳೆಯಲು ಹೋಗುತ್ತದೆ, ಮತ್ತು ಇದು ಈ ದಿಕ್ಕಿನಲ್ಲಿ ಬೆಳೆಯುತ್ತದೆ.
ಆದ್ದರಿಂದ ಅವರ ರಾಶಿ ತುಂಬಾ ಚಿಕ್ಕದಾಗಿದೆ ಹೇಳಲು ಅವಕಾಶ.
ನಂತರ ಸ್ವಲ್ಪ ಬೆಳೆದು ಕೇವಲ ಬೆಳೆದ ಈ ಬ್ಲಾಕ್ಗೆ ಒಂದು ಪಾಯಿಂಟರ್ ಮರಳಲು ಬಗ್ಗೆ.
ನೀವು ಉಚಿತ ಸ್ಟಫ್, ನೀವು ಹೇರಳ ಕೋಣೆ ಮಾಡುವ ನೀವು,
ಆದ್ದರಿಂದ ನಂತರ malloc ಕರೆ ನೀವು ಹಿಂದೆ ಬಿಡಿಸಿಕೊಂಡ ಆ ಮೆಮೊರಿ ಉಪಯೋಗಿಸಬಹುದು.
malloc ಮತ್ತು ಉಚಿತ ಮುಖ್ಯ ವಿಷಯವೆಂದರೆ ನೀವು ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣ ಲಭಿಸುತ್ತದೆ ಎಂದು
ಈ ಮೆಮೊರಿ ಬ್ಲಾಕ್ಗಳನ್ನು ಜೀವಿತಾವಧಿಯ.
ಜಾಗತಿಕ ಅಸ್ಥಿರ ಯಾವಾಗಲೂ ಜೀವಂತವಾಗಿವೆ.
ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳು ತಮ್ಮ ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ಜೀವಂತವಾಗಿವೆ.
ತಕ್ಷಣ ನೀವು ಸುರುಳಿಯಾದ ಬ್ರೇಸ್ ಕಳೆದ ಹೋದಂತೆ, ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳು ಸಾವನ್ನಪ್ಪುತ್ತಾರೆ.
ನೀವು ಜೀವಂತವಾಗಿ ಎಂದು ಬಯಸಿದಾಗ Malloced ಮೆಮೊರಿ ಜೀವಂತವಾಗಿದೆ
ನೀವು ಬಿಡುಗಡೆ ಅದನ್ನು ಹೇಳಿದಾಗ ಮತ್ತು ನಂತರ ಬಿಡುಗಡೆಯಾಯಿತು.
ಆ ನಿಜವಾಗಿಯೂ, ವಾಸ್ತವವಾಗಿ ಮೆಮೊರಿ ಕೇವಲ 3 ವಿಧಗಳು.
ಸ್ಟಾಕ್ ಇದು ಸ್ವಯಂಚಾಲಿತ ಸ್ಮರಣೆ ನಿರ್ವಹಣೆ, ಇಲ್ಲ.
ವಸ್ತುಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಂಭವಿಸಬಹುದು.
ನೀವು ಇಂಟ್ X ಹೇಳುವುದಾದರೆ, ಮೆಮೊರಿ ಇಂಟ್ x ಗಾಗಿ ನಿಯೋಜಿತವಾದ ಇದೆ.
X ವ್ಯಾಪ್ತಿ ಹೊರಗೆ ಹೋದಾಗ, ಮೆಮೊರಿ x ಗಾಗಿ ವಾಪಸು ಇದೆ.
ನಂತರ ಕ್ರಿಯಾಶೀಲ ಸ್ಮರಣೆ ನಿರ್ವಹಣೆ, ಇದು malloc ಏನು ಆಗಿದೆ, ಇಲ್ಲ
ನೀವು ನಿಯಂತ್ರಣ ಮಾಡಿದಾಗ ಇದು.
ನೀವು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಮೆಮೊರಿ ಮತ್ತು ಹಂಚಿಕೆ ಮಾಡಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು.
ತದನಂತರ ಸ್ಥಿರ ಇಲ್ಲ, ಇದು ಕೇವಲ, ಇದು ಶಾಶ್ವತವಾಗಿ ಜೀವಿಸುವ ಅರ್ಥ
ಜಾಗತಿಕ ಚರಗಳಾಗಿವೆ ಏನು.
ಅವರು ಮೆಮೊರಿ ಕೇವಲ ಯಾವಾಗಲೂ ಆರ್.
>> ಪ್ರಶ್ನೆಗಳು?
[ವಿದ್ಯಾರ್ಥಿ] ನೀವು ಸುರುಳಿಯಾದ ಬ್ರೇಸ್ ಬಳಸಿಕೊಂಡು ಬ್ಲಾಕ್ ವ್ಯಾಖ್ಯಾನಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ
ಆದರೆ ಹೊಂದುವ ಒಂದು ಹೇಳಿಕೆಯನ್ನು ಅಥವಾ ಒಂದು ಸಂದರ್ಭದಲ್ಲಿ ಹೇಳಿಕೆ ಅಥವಾ ಏನು ವೇಳೆ?
ನೀವು ಒಂದು ಕಾರ್ಯದಲ್ಲಿ ಒಂದು ಬ್ಲಾಕ್ ರೂಪಿಸಬಹುದು, ಆದರೆ ತುಂಬಾ ಸುರುಳಿಯಾದ ಬ್ರೇಸ್ ಹೊಂದಿದೆ.
[ವಿದ್ಯಾರ್ಥಿ] ಆದ್ದರಿಂದ ನಿಮ್ಮ ಕೋಡ್ ಸುರುಳಿಯಾದ ಬ್ರೇಸ್ ಒಂದು ಯಾದೃಚ್ಛಿಕ ಜೋಡಿ ಮುಂತಾದ ಹೊಂದುವಂತಿಲ್ಲ
ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳು ಎಂದು? >> ಹೌದು, ನೀವು.
ಇಂಟ್ ಪಟ್ಟಿಯ ಒಳಗೆ ನಾವು {int Y = 3;} ತೋರಿಸಬಹುದಿತ್ತು.
ಎಂದು ಇಲ್ಲಿಯೇ ಎಂದು ಮಾಡಬೇಕೋ.
ಆದರೆ ಸಂಪೂರ್ಣವಾಗಿ ಇಂಟ್ Y ವ್ಯಾಪ್ತಿಯನ್ನು ವರ್ಣಿಸಬಹುದು.
ಆ ಎರಡನೇ ಸುರುಳಿಯಾದ ಬ್ರೇಸ್ ನಂತರ, Y ಇನ್ನು ಮುಂದೆ ಬಳಸಲಾಗುವುದಿಲ್ಲ.
ನೀವು ಆದರೂ, ಇದನ್ನು ಬಹುತೇಕ ಎಂದಿಗೂ.
ಒಂದು ಕಾರ್ಯಕ್ರಮ ಮುಗಿದಾಗ ಏನಾಗುತ್ತದೆ ಗೆ ಮರಳುವುದು
ನಾವು ಕೆಲಸಗಳನ್ನು ಸುಲಭಗೊಳಿಸುವ ಸಲುವಾಗಿ ನೀಡುವ ಒಂದು ತಪ್ಪು / ಅರ್ಧ ಸುಳ್ಳು ರೀತಿಯ ಇಲ್ಲ.
ನಾವು ನಿಮಗೆ ಹೇಳಲು ನೀವು ಮೆಮೊರಿ ನಿಯೋಜಿಸಿ ಮಾಡಿದಾಗ
ಆ ಅಸ್ಥಿರವನ್ನು RAM ನ ಕೆಲವು ಪಾಲನ್ನು ನೀಡಲು ನೀವು.
ಆದರೆ ನೀವು ನಿಜವಾಗಿಯೂ ನೇರವಾಗಿ ನಿಮ್ಮ ಕಾರ್ಯಕ್ರಮಗಳು ಇದುವರೆಗೂ RAM ಸ್ಪರ್ಶಿಸುವ ಇಲ್ಲ.
ನೀವು ಅದರ ಭಾವಿಸಿದರೆ, ಹೇಗೆ ನಾನು ಸೆಳೆಯಿತು -
ನೀವು GDB ಮೂಲಕ ಹೋದರೆ ಮತ್ತು ವಾಸ್ತವವಾಗಿ, ನೀವು ಒಂದೇ ನೋಡುತ್ತಾರೆ.
ಹೊರತಾಗಿ ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂ ಅಥವಾ ನೀವು ಚಲಾಯಿಸುತ್ತಿರುವ ಏನನ್ನು ಪ್ರೋಗ್ರಾಂ ರನ್ ಎಷ್ಟು ಬಾರಿ
ಸ್ಟಾಕ್ ಯಾವಾಗಲೂ ಪ್ರಾರಂಭಿಸುತ್ತಾರೆ ಇದೆ -
ನೀವು ಯಾವಾಗಲೂ ವಿಳಾಸಕ್ಕೆ oxbffff ಏನೋ ಸುಮಾರು ಚರಾಂಕಗಳ ನೋಡಲು ನೀನು.
ಆ ಪ್ರದೇಶದಲ್ಲಿ ಎಲ್ಲೋ ಸಾಮಾನ್ಯವಾಗಿ ಇಲ್ಲಿದೆ.
ಆದರೆ ಹೇಗೆ 2 ಕಾರ್ಯಕ್ರಮಗಳು ಬಹುಶಃ ಅದೇ ಮೆಮೊರಿ ರೀತಿಯು ಹೊಂದಿರುತ್ತವೆ?
[ವಿದ್ಯಾರ್ಥಿ] oxbfff RAM ಮೇಲೆ ಆಗಿರಬೇಕು ಅಲ್ಲಿ ಕೆಲವು ನಿರಂಕುಶ ನಿಯೋಜನೆ ಇಲ್ಲ
ಎಂದು ವಾಸ್ತವವಾಗಿ ಕಾರ್ಯ ಕರೆಸಿಕೊಳ್ಳಲಾಗಿತ್ತು ಅವಲಂಬಿಸಿ ವಿವಿಧ ಸ್ಥಳಗಳಲ್ಲಿ ಮಾಡಬಹುದು.
ಹೌದು. ಪದ ವರ್ಚುವಲ್ ಮೆಮೊರಿ ಹೊಂದಿದೆ.
ಕಲ್ಪನೆ ಪ್ರತಿಯೊಂದು ಪ್ರಕ್ರಿಯೆಯನ್ನು, ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಕಾರ್ಯಕ್ರಮ
ತನ್ನದೇ ಹೊಂದಿದೆ - ಸಂಪೂರ್ಣವಾಗಿ ಸ್ವತಂತ್ರ ಜಾಗದ - ಈಗ 32 ಬಿಟ್ಗಳು ಊಹಿಸುತ್ತವೆ.
ಈ ವಿಳಾಸಕ್ಕೆ ಸ್ಥಳವಾಗಿದೆ.
ಇದು ಬಳಸಲು ತನ್ನದೇ ಸಂಪೂರ್ಣವಾಗಿ ಸ್ವತಂತ್ರ 4 ಗಿಗಾಬೈಟ್ ಹೊಂದಿದೆ.
>> ನೀವು ಏಕಕಾಲದಲ್ಲಿ 2 ಕಾರ್ಯಕ್ರಮಗಳು ರನ್ ಆದ್ದರಿಂದ, ಈ ಕಾರ್ಯಕ್ರಮವನ್ನು, ಸ್ವತಃ 4 ಗಿಗಾಬೈಟ್ ನೋಡುತ್ತದೆ
ಈ ಕಾರ್ಯಕ್ರಮವನ್ನು, ಸ್ವತಃ 4 ಗಿಗಾಬೈಟ್ ನೋಡುತ್ತದೆ
ಮತ್ತು ಈ ಕಾರ್ಯಕ್ರಮಕ್ಕಾಗಿ dereference ಒಂದು ಪಾಯಿಂಟರ್ ಅಸಾಧ್ಯ
ಮತ್ತು ಈ ಪ್ರೋಗ್ರಾಂನಿಂದ ಮೆಮೊರಿ ಅಂತ್ಯಗೊಳ್ಳುತ್ತಿತ್ತು.
ಮತ್ತು ವಾಸ್ತವ ಮೆಮೊರಿಯನ್ನು ಒಂದು ಪ್ರಕ್ರಿಯೆಗಳು ಜಾಗದ ಒಂದು ಮ್ಯಾಪಿಂಗ್ ಆಗಿದೆ
RAM ಮೇಲೆ ನೈಜ ವಸ್ತುಗಳು.
ಆದ್ದರಿಂದ ಎಂದು ತಿಳಿಯಲು ನಿಮ್ಮ ಕಾರ್ಯವ್ಯವಸ್ಥೆಯನ್ನು ಬಿಟ್ಟಿದ್ದು,
ಹೇ, ಈ ವ್ಯಕ್ತಿ dereferences ಪಾಯಿಂಟರ್ oxbfff, ನಿಜಕ್ಕೂ ಅರ್ಥ
ರಾಮ್ ಬೈಟ್ 1000, ಬಯಸಿದ್ದರು
ಆದರೆ ಈ ಕಾರ್ಯಕ್ರಮ dereferences oxbfff ವೇಳೆ, ಅವರು ನಿಜವಾಗಿಯೂ RAM ಬೈಟ್ 10000 ಬಯಸಿದೆ.
ಅವು ಕ್ರಮವಿಲ್ಲದ ದೂರವಿರಬಹುದು ಮಾಡಬಹುದು.
ಈ ಒಂದು ಪ್ರಕ್ರಿಯೆಗಳು ವಿಳಾಸಕ್ಕೆ ಜಾಗವನ್ನು ವಿಷಯಗಳನ್ನು ಸಹ ಸತ್ಯ.
ಆದ್ದರಿಂದ ಹಾಗೆ ಅದನ್ನು ಬಿಟ್ಟು ಎಲ್ಲಾ 4 ಗಿಗಾಬೈಟ್ ನೋಡುತ್ತಾನೆ, ಆದರೆ ಹೇಳಲು ಈಗ -
[ವಿದ್ಯಾರ್ಥಿ] ಪ್ರತಿಯೊಂದು ಪ್ರಕ್ರಿಯೆಯನ್ನು ಡಸ್ -
ಲೆಟ್ಸ್ ನೀವು RAM ನ ಕೇವಲ 4 ಗಿಗಾಬೈಟ್ ಒಂದು ಕಂಪ್ಯೂಟರ್ ಹೇಳುತ್ತಾರೆ.
ಪ್ರತಿಯೊಂದು ಪ್ರಕ್ರಿಯೆಯ ಸಂಪೂರ್ಣ 4 ಗಿಗಾಬೈಟ್ ನೋಡಿ ಡಸ್? >> ಹೌದು.
ಆದರೆ ನೋಡುವ 4 ಗಿಗಾಬೈಟ್ ಒಂದು ಸುಳ್ಳು ಆಗಿದೆ.
ಅದು ಇದು ಯಾವುದೇ ಪ್ರಕ್ರಿಯೆ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಗೊತ್ತಿಲ್ಲ ಏಕೆಂದರೆ ಈ ಮೆಮೊರಿ ಹೊಂದಿದೆ ಯೋಚಿಸುತ್ತಾನೆ ನ.
ಇದು ವಾಸ್ತವವಾಗಿ ಅಗತ್ಯವಿದೆ ಎಂದು ಮಾತ್ರ ಅಷ್ಟೇ ಸ್ಮರಣೆಯನ್ನು ಬಳಸುತ್ತದೆ.
ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಈ ಪ್ರಕ್ರಿಯೆಗೆ RAM ನೀಡಲು ಹೋಗುತ್ತಿಲ್ಲ ಇದೆ
ಇದು ಇಡೀ ಪ್ರದೇಶದಲ್ಲಿ ಯಾವುದೇ ಮೆಮೊರಿ ಬಳಸದೇ ಇದ್ದರೆ.
ಅದು ಆ ಪ್ರದೇಶಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಮೆಮೊರಿ ನೀಡಲು ಹಿಂದಿರುಗಬಹುದೆಂದು.
ಆದರೆ ಕಲ್ಪನೆ ಎಂದು - ನಾನು ಭಾವಿಸುತ್ತೇನೆ ಪ್ರಯತ್ನಿಸುವಾಗ ನಾನು - ನಾನು ಸಾದೃಶ್ಯದ ಯೋಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
ಸಾದೃಶ್ಯಗಳು ಕಷ್ಟವಾಗುತ್ತದೆ.
ವಾಸ್ತವ ಮೆಮೊರಿಯನ್ನು ಸಮಸ್ಯೆಗಳ ಒಂದು ಅಥವಾ ಪರಿಹರಿಸುವ ಮಾಡಿದ ವಸ್ತುಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ
ಪ್ರಕ್ರಿಯೆಗಳ ಪರಸ್ಪರ ಸಂಪೂರ್ಣವಾಗಿ ತಿಳಿದಿಲ್ಲ ಎಂಬುದು.
ಆದ್ದರಿಂದ ನೀವು ಯಾವುದೇ ಪ್ರೋಗ್ರಾಂ ಬರೆಯಬಹುದು ಎಂದು ಕೇವಲ dereferences ಯಾವುದೇ ಪಾಯಿಂಟರ್,
ಕೇವಲ, * (ox1234) ಹೇಳುತ್ತದೆ ಬರೆಯುವ ಒಂದು ಪ್ರೊಗ್ರಾಮ್ ಇಷ್ಟ
ಮತ್ತು ಅವರ ಆ dereferencing ಮೆಮೊರಿ ವಿಳಾಸಕ್ಕೆ 1234.
>> ಆದರೆ ನಂತರ ಯಾವ 1234 ಸಾಧನವಾಗಿ ಭಾಷಾಂತರಿಸಲು ಕಾರ್ಯವ್ಯವಸ್ಥೆಯನ್ನು ಬಿಟ್ಟಿದ್ದು.
ಹಾಗಾಗಿ 1234, ಈ ಪ್ರಕ್ರಿಯೆಯು ಒಂದು ಮಾನ್ಯವಾದ ಮೆಮೊರಿ ವಿಳಾಸ ಸಂಭವಿಸಿದರೆ
ಅದನ್ನು ಸ್ಟ್ಯಾಕ್ ಅಥವಾ ವಿಚಾರದ ಬಗ್ಗೆ ಆದಂತೆ, ನಂತರ ಇದು ಮೆಮೊರಿ ವಿಳಾಸಕ್ಕೆ ಮೌಲ್ಯವನ್ನು ಹಿಂತಿರುಗುವುದು
ದೂರದ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ತಿಳಿದಿರುವ ಮಾಹಿತಿ.
ಭೂಮಿಗೆ ಸಂಭವಿಸುತ್ತದೆ ಆದರೆ ವೇಳೆ 1234, ಮಾನ್ಯ ವಿಳಾಸವಲ್ಲ
ಸ್ಟಾಕ್ ಮೀರಿ ಎಂದು ಇಲ್ಲಿ ಮೆಮೊರಿ ಕೆಲವು ಸಣ್ಣ ತುಣುಕು ಮತ್ತು ರಾಶಿ ಮೀರಿ
ಮತ್ತು ನೀವು ನಿಜವಾಗಿಯೂ ನೀವು segfaults ವಿಷಯಗಳನ್ನು ಪಡೆಯಲು ಆ, ನಂತರ ಅವರ ಬಳಸಿಲ್ಲ
ನೀವು ಸ್ಪರ್ಶಿಸುವ ಭಾವಿಸುವಂತಿಲ್ಲ ಮೆಮೊರಿ ಸ್ಪರ್ಶಿಸುವ ಇರುವ ಕಾರಣ.
ಇದು ನಿಜ -
ಒಂದು 32 ಬಿಟ್ ವ್ಯವಸ್ಥೆಯು, 32 ಬಿಟ್ಗಳು ನೀವು ಮೆಮೊರಿ ವಿಳಾಸಕ್ಕೆ ವ್ಯಾಖ್ಯಾನಿಸಲು 32 ಬಿಟ್ಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ.
ಅಥವಾ 4 ಬೈಟ್ಗಳು - ಪಾಯಿಂಟರ್ಸ್ 8 ಬೈಟ್ಗಳು ಏಕೆ 32 ಬಿಟ್ಗಳು 8 ಬೈಟ್ಗಳು ಏಕೆಂದರೆ ಇದು.
ಪಾಯಿಂಟರ್ಸ್ 4 ಬೈಟ್ಗಳು ಇವೆ.
ಆದ್ದರಿಂದ ನೀವು oxbfffff ಒಂದು ಪಾಯಿಂಟರ್ ನೋಡಿದಾಗ, ಅಂದರೆ -
ಯಾವುದೇ ಪ್ರೋಗ್ರಾಂ ಒಳಗೆ ನೀವು ಯಾವುದೇ ಅನಿಯಂತ್ರಿತ ಪಾಯಿಂಟರ್ ನಿರ್ಮಿಸಬಹುದಾಗಿದೆ
ಎಲ್ಲಿಯಾದರೂ ox0 ರಿಂದ ಎತ್ತು 8 f's ಗೆ - ffffffff.
[ವಿದ್ಯಾರ್ಥಿ] ಅವರು 4 ಬೈಟ್ಗಳು ಆರ್ ಹೇಳಲಿಲ್ಲ? >> ಹೌದು.
[ವಿದ್ಯಾರ್ಥಿ] ನಂತರ ಪ್ರತಿ ಬೈಟ್ ಹೊಂದಿರುತ್ತದೆ - >> [ಬೌಡೆನ್] ಹೆಕ್ಸಾಡೆಸಿಮಲ್.
ಹೆಕ್ಸಾಡೆಸಿಮಲ್ - 5, 6, 7, 8. ಪಾಯಿಂಟರ್ಸ್ ಆದ್ದರಿಂದ ನೀವು ಯಾವಾಗಲೂ ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ನೋಡಲು ನೀನು.
ನಾವು ಪಾಯಿಂಟರ್ಸ್ ವರ್ಗೀಕರಿಸಲು ಹೇಗೆ ಜಸ್ಟ್.
ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಪ್ರತಿ 2 ಅಂಕೆಗಳು 1 ಬೈಟ್.
ಆದ್ದರಿಂದ 4 ಬೈಟ್ಗಳು 8 ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಅಂಕೆಗಳು ಇರುವಂತೆ ವಿಶೇಷವೇನು.
ಆದ್ದರಿಂದ ಒಂದು 32 ಬಿಟ್ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಪ್ರತಿಯೊಂದು ಪಾಯಿಂಟರ್, 4 ಬೈಟ್ಗಳು ಏರಲಿದೆ
ಇದು ನಿಮ್ಮ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ನೀವು ಯಾವುದೇ ಅನಿರ್ಬಂಧಿತ 4 ಬೈಟ್ಗಳು ನಿರ್ಮಿಸಲು ಎಂದರ್ಥ
ಮತ್ತು, ಇದು ಒಂದು ಪಾಯಿಂಟರ್ ಮಾಡಲು
ಇದು ದೂರದ ಇದು ಅರಿವು ಈಸ್ ಇದು ಮೆಮೊರಿ 32 ಬೈಟ್ಗಳು ಸಂಪೂರ್ಣ 2 ಪರಿಹರಿಸಲು ಎಂದರ್ಥ.
ಇದು ನಿಜವಾಗಿಯೂ ಆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿಲ್ಲ ಸಹ,
ನಿಮ್ಮ ಗಣಕವು ಕೇವಲ 512 ಮೆಗಾಬೈಟ್ ಹೊಂದಿದೆ ಸಹ, ಇದು ಸಾಕಷ್ಟು ಮೆಮೊರಿ ಹೊಂದಿದೆ ಯೋಚಿಸುತ್ತಾನೆ.
ಮತ್ತು ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆಯು ಮಾತ್ರ ನೀವು ವಾಸ್ತವವಾಗಿ ಬೇಕಾದುದನ್ನು ನಿಯೋಜಿಸಿ ಎಂದು ಸಾಕಷ್ಟು ಸ್ಮಾರ್ಟ್ ಆಗಿದೆ.
4 ಸಂಗೀತ: ಇದು ಕೇವಲ, ಓಹ್, ಒಂದು ಹೊಸ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಹೋಗುವುದಿಲ್ಲ.
>> ಹೌದು. >> [ವಿದ್ಯಾರ್ಥಿ] ಎತ್ತು ಅರ್ಥವೇನು? ಏಕೆ ನೀವು ಬರೆದು?
ಇದು ಕೇವಲ ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಸಂಕೇತವೆಂದು ಇಲ್ಲಿದೆ.
ನೀವು ಎತ್ತು ಒಂದು ಸಂಖ್ಯೆಯನ್ನು ಆರಂಭ ನೋಡಿದಾಗ, ಸತತ ವಿಷಯಗಳನ್ನು ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಇವೆ.
[ವಿದ್ಯಾರ್ಥಿ] ನೀವು ಒಂದು ಕಾರ್ಯಕ್ರಮ ಮುಗಿದಾಗ ಏನಾಗುತ್ತದೆ ಬಗ್ಗೆ ವಿವರಿಸುವ ಮಾಡಲಾಯಿತು. >> ಹೌದು.
ಯಾವ ಒಂದು ಪ್ರೋಗ್ರಾಂ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ ಸಂಭವಿಸುತ್ತದೆ ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆ
ಕೇವಲ ಅಳಿಸಿ ಹೋಗುತ್ತವೆ ಈ ವಿಳಾಸಗಳನ್ನು ಹೊಂದಿದೆ, ಮತ್ತು ಇದು ಎಂದು ಮ್ಯಾಪಿಂಗುಗಳನ್ನು.
ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಈಗ ಬಳಸಲು ಇನ್ನೊಂದು ಪ್ರೋಗ್ರಾಂಗೆ ಆ ಮೆಮೊರಿ ನೀಡಬಹುದು.
[ವಿದ್ಯಾರ್ಥಿ] ಸರಿ.
ಆದ್ದರಿಂದ ನೀವು ರಾಶಿ ಅಥವಾ ಸ್ಟಾಕ್ ಅಥವಾ ಜಾಗತಿಕ ಅಸ್ಥಿರ ಅಥವಾ ಏನು ಮೇಲೆ ಏನೋ ನಿಯೋಜಿಸಿ ಮಾಡಿದಾಗ,
ಅವರು ಎಲ್ಲಾ ಕೇವಲ ತಕ್ಷಣ ಪ್ರೋಗ್ರಾಂ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ ಎಂದು ಕಣ್ಮರೆಯಾಗಿ
ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಈಗ ಯಾವುದೇ ಪ್ರಕ್ರಿಯೆ ಎಂದು ಮೆಮೊರಿ ನೀಡಲು ಉಚಿತ ಕಾರಣ.
[ವಿದ್ಯಾರ್ಥಿ] ಬರೆಯಲಾಗಿದೆ ಮೌಲ್ಯಗಳು ಇಂದಿಗೂ ಬಹುಶಃ ಇದ್ದರೂ ಸಹ ಇನ್ನೂ? >> ಹೌದು.
ಮೌಲ್ಯಗಳು ಇನ್ನೂ ಸಾಧ್ಯತೆ ಇವೆ.
ಅದು ಇದು ಅವುಗಳನ್ನು ಪಡೆಯಲು ಕಷ್ಟವಾಗಬಹುದು ಹೋಗುವ ರ.
ಇದು ಒಂದು ಅಳಿಸಲಾಗಿದೆ ಕಡತ ನಲ್ಲಿ ಪಡೆಯಲು ಹೆಚ್ಚು ಇದು ಅವುಗಳನ್ನು ಪಡೆಯಲು ಹೆಚ್ಚು ಕಷ್ಟ
ಅಳಿಸಿದ ಕಡತವನ್ನು ರೀತಿಯ ದೀರ್ಘ ಕಾಲ ಇರುತ್ತದೆ ಮತ್ತು ಹಾರ್ಡ್ ಡ್ರೈವ್ ಒಂದು ಸಾಕಷ್ಟು ದೊಡ್ಡ ಕಾರಣ.
ಆದ್ದರಿಂದ ಮೆಮೊರಿ ವಿವಿಧ ಭಾಗಗಳನ್ನು ಅಳಿಸಿ ಅದರ ವಿಶೇಷವೇನು
ಆ ಫೈಲ್ ನಲ್ಲಿ ಉಪಯೋಗಿಸುವ ಮೆಮೊರಿಯ ಚಂಕ್ ಬದಲಿಸಿ ಸಂಭವಿಸಿದರೆ ಮೊದಲು.
ಆದರೆ ಮುಖ್ಯ ಮೆಮೊರಿ, ವೇಗವಾಗಿ ಸಾಕಷ್ಟು ಮೂಲಕ ನೀವು ಸೈಕಲ್ RAM,
ಆದ್ದರಿಂದ ಇದು ಬಹಳ ವೇಗವಾಗಿ ತಿದ್ದಿ ಬರೆಯಲಾಗುತ್ತದೆ ಹೋಗುವುದಿಲ್ಲ.
ಈ ಅಥವಾ ಯಾವುದೇ ವಸ್ತುವಿರಲಿ ರಂದು ಪ್ರಶ್ನೆಗಳು?
[ವಿದ್ಯಾರ್ಥಿ] ನಾನು ಬೇರೆ ವಿಷಯದ ಬಗ್ಗೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ. ಸರಿ >>.
ಯಾರಾದರೂ ಈ ಪ್ರಶ್ನೆಗಳನ್ನು ಹೊಂದಿದೆ?
>> ಸರಿ. ವಿವಿಧ ವಿಷಯ. >> [ವಿದ್ಯಾರ್ಥಿ] ಸರಿ.
ನಾನು, ಅಭ್ಯಾಸ ಪರೀಕ್ಷೆಗಳು ಕೆಲವು ನಡೆಯುತ್ತಿತ್ತು
ಮತ್ತು ಅವುಗಳಲ್ಲಿ ಒಂದು ಅದನ್ನು sizeof ಬಗ್ಗೆ ಮಾತನಾಡಿದ್ದನ್ನು
ಮತ್ತು ಮೌಲ್ಯವನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ ಅಥವಾ ವಿವಿಧ ವ್ಯತ್ಯಾಸಗೊಳ್ಳುವ ರೀತಿಯ ಎಂದು. >> ಹೌದು.
ಮತ್ತು ಇಂಟ್ ಮತ್ತು ದೀರ್ಘ ಎರಡೂ ರಿಟರ್ನ್ 4 ಎರಡೂ, ಆದ್ದರಿಂದ ಇಬ್ಬರೂ 4 ಬೈಟ್ಗಳು ಉದ್ದವಾಗಿರುತ್ತವೆ ಆರ್ ಹೇಳಿದರು.
ಒಂದು ಇಂಟ್ ಮತ್ತು ದೀರ್ಘ ನಡುವೆ ಯಾವುದೇ ವ್ಯತ್ಯಾಸವನ್ನು, ಅಥವಾ ಅದೇ ವಿಷಯ?
ಹೌದು, ಒಂದು ವ್ಯತ್ಯಾಸವಿದೆ.
ಸಿ ಸ್ಟ್ಯಾಂಡರ್ಡ್ -
ನಾನು ಬಹುಶಃ ಅವ್ಯವಸ್ಥೆ ಅಪ್ ಪಡೆಯಲಿದ್ದೇನೆ.
ಸಿ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಕೇವಲ ಸಿ, ಸಿ ಅಧಿಕೃತ ದಾಖಲೆಯನ್ನು ಯಾವುದು ಇಷ್ಟ ಇದೆ
ಇದು ಹೇಳುತ್ತದೆ ಏನು.
ಆದ್ದರಿಂದ ಸಿ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಕೇವಲ ಚಾರ್ ಶಾಶ್ವತವಾಗಿ ಮತ್ತು ಯಾವಾಗಲೂ 1 ಬೈಟ್ ಎಂದು ಹೇಳುತ್ತಾರೆ.
ನಂತರ ಎಲ್ಲವೂ - ಕಡಿಮೆ ಯಾವಾಗಲೂ ಕೇವಲ ಹೆಚ್ಚಿನ ಅಥವಾ ಚಾರ್ ಸಮಾನವಾಗಿರುತ್ತದೆ ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ.
ಈ ಕಟ್ಟುನಿಟ್ಟಾಗಿ ಹೆಚ್ಚು, ಆದರೆ ಧನಾತ್ಮಕವಾಗಿಲ್ಲ ಇರಬಹುದು.
ಒಂದು ಇಂಟ್ ಕೇವಲ ಹೆಚ್ಚು ಅಥವಾ ಕಡಿಮೆ ಸಮಾನವಾಗಿದೆ ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ.
ಮತ್ತು ಬಹಳ ಕೇವಲ ಹೆಚ್ಚಿನ ಅಥವಾ ಒಂದು ಇಂಟ್ ಸಮಾನವಾಗಿರುತ್ತದೆ ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ.
ಮತ್ತು ದೀರ್ಘ ದೀರ್ಘ ಹೆಚ್ಚಿನ ಅಥವಾ ಬಹಳ ಸಮಾನವಾಗಿದೆ.
ಆದ್ದರಿಂದ ಸಿ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ವರ್ಣಿಸಬಹುದು ಮಾತ್ರ ವಿಷಯ ಎಲ್ಲವೂ ಸಾಪೇಕ್ಷ ಲೆಕ್ಸಿಕೋಗ್ರಾಫಿಕ್ ಕ್ರಮದಲ್ಲಿಡುವಿಕೆಯು ಸಂರಕ್ಷಿಸುತ್ತದೆ ಹೊಂದಿದೆ.
ವಿಷಯಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು ಎಂದು ಮೆಮೊರಿ ನಿಜವಾದ ಪ್ರಮಾಣವನ್ನು, ಅಪ್ ಅನುಷ್ಠಾನಕ್ಕೆ ಸಾಮಾನ್ಯವಾಗಿ
ಆದರೆ ಇದು ಬಹಳ ಚೆನ್ನಾಗಿ ಈ ಹಂತದಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ ನ. >> [ವಿದ್ಯಾರ್ಥಿ] ಸರಿ.
ಆದ್ದರಿಂದ ಕಿರು ಯಾವಾಗಲೂ 2 ಬೈಟ್ಗಳು ಮುಂದುವರೆಸುತ್ತೇವೆ.
Ints ಯಾವಾಗಲೂ 4 ಬೈಟ್ಗಳು ಮುಂದುವರೆಸುತ್ತೇವೆ.
ಉದ್ದ ದೂರವುಳಿಯಬೇಕಾಗುತ್ತದೆ ಯಾವಾಗಲೂ 8 ಬೈಟ್ಗಳು ಮುಂದುವರೆಸುತ್ತೇವೆ.
ಮತ್ತು ನೀವು ಒಂದು 32 ಬಿಟ್ ಅಥವಾ 64-ಬಿಟ್ ವ್ಯವಸ್ಥೆ ಬಳಸುತ್ತಿದ್ದೀರಿ ಎಂಬುದರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ, ದೂರವುಳಿಯಬೇಕಾಗುತ್ತದೆ.
ಆದ್ದರಿಂದ ಒಂದು ಉದ್ದದ ವ್ಯವಸ್ಥೆಯ ಪ್ರಕಾರವನ್ನು ಹೋಲುತ್ತದೆ ಹೋಗುತ್ತದೆ.
ನೀವು ಯಂತ್ರ ಒಂದು 32 ಬಿಟ್ ಗಣಕವನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ಅದನ್ನು 4 ಬೈಟ್ಗಳು ಎಂದು ವಿಶೇಷವೇನು.
ನೀವು ಇತ್ತೀಚಿನ ಕಂಪ್ಯೂಟರ್ಗಳ ಸಾಕಷ್ಟು ಒಂದು 64 ಬಿಟ್ ಬಳಸುತ್ತಿದ್ದರೆ, ಇದು 8 ಬೈಟ್ಗಳು ಎಂದು ವಿಶೇಷವೇನು.
>> Ints ಯಾವಾಗಲೂ ಈ ಹಂತದಲ್ಲಿ 4 ಬೈಟ್ಗಳು ಇವೆ.
ಉದ್ದ ದೂರವುಳಿಯಬೇಕಾಗುತ್ತದೆ ಯಾವಾಗಲೂ 8 ಬೈಟ್ಗಳು ಇವೆ.
ಹಿಂದೆ, ints ಕೇವಲ 2 ಬೈಟ್ಗಳು ಎಂದು ಬಳಸಲಾಗುತ್ತದೆ.
ಆದರೆ ಈ ಸಂಪೂರ್ಣವಾಗಿ ಹೆಚ್ಚಿನ ಮತ್ತು ಸಮನಾದ ಈ ಸಂಬಂಧ ಎಲ್ಲಾ ತೃಪ್ತಿ ಗಮನಿಸುವುದಿಲ್ಲ.
ಬಹಳ ನಿಖರವಾಗಿ ಒಂದು ಪೂರ್ಣಾಂಕ ಅದೇ ಗಾತ್ರದ ಎಂದು ಅನುಮತಿ ಇದೆ,
ಮತ್ತು ಇದು ದೀರ್ಘ ಕಾಲ ಒಂದೇ ಗಾತ್ರ ಎಂದು ಅನುಮತಿಸಲಾಗಿದೆ.
ಮತ್ತು ಇದು ಆದ್ದರಿಂದ ವ್ಯವಸ್ಥೆಗಳ 99,999% ರಲ್ಲಿ, ಇದು ಸಮಾನವಾಗಿರಬೇಕು ಹೋಗುವ ನಿಗದಿಪಡಿಸಲಾಗಿದೆ ಎಂದು ಸಂಭವಿಸುತ್ತದೆ
ಒಂದು ಇಂಟ್ ಅಥವಾ ದೀರ್ಘ ದೀರ್ಘ ಒಂದೋ. ಇದು ಕೇವಲ 32 ಬಿಟ್ ಅಥವಾ 64-ಬಿಟ್ ಅವಲಂಬಿಸಿರುತ್ತದೆ. >> [ವಿದ್ಯಾರ್ಥಿ] ಸರಿ.
ಫ್ಲೋಟ್ಗಳು ರಲ್ಲಿ, ಬಿಟ್ಸ್ ಪರಿಭಾಷೆಯಲ್ಲಿ ಗೊತ್ತುಪಡಿಸಿದ ದಶಮಾಂಶ ಬಿಂದುವಿನ ಹೇಗೆ?
ದ್ವಿಮಾನ ಲೈಕ್? >> ಹೌದು.
ನೀವು CS50 ಆ ತಿಳಿಯಲು ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.
ನೀವು 61 ಆ ತಿಳಿಯಲು ಇಲ್ಲ.
ನೀವು ಯಾವುದೇ ಕೋರ್ಸಿಗೆ ನಿಜಕ್ಕೂ ತಿಳಿದುಕೊಳ್ಳಿ.
ಇದು ಕೇವಲ ಒಂದು ನಿರೂಪಣೆ ಇಲ್ಲಿದೆ.
ನಾನು ಸರಿಯಾದ ಬಿಟ್ ಮಂಜೂರಾತಿಗಳನ್ನು ಮರೆಯಬೇಡಿ.
ಫ್ಲೋಟಿಂಗ್ ಪಾಯಿಂಟ್ ಕಲ್ಪನೆಯನ್ನು ನೀವು ಪ್ರತಿನಿಧಿಸಲು ಬಿಟ್ಗಳು ಒಂದು ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ ನಿಯೋಜಿಸಿ ಎಂದು -
ಮೂಲತಃ, ಎಲ್ಲವೂ ವೈಜ್ಞಾನಿಕ ಸಂಕೇತಗಳಲ್ಲಿ ಹೊಂದಿದೆ.
ಆದ್ದರಿಂದ ನೀವು 1,2345 ನಂತಹ ಸಂಖ್ಯೆ ಸ್ವತಃ ಪ್ರತಿನಿಧಿಸಲು ಬಿಟ್ಗಳು ಒಂದು ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ ನಿಯೋಜಿಸಿ.
ನಾನು 5 ಹೆಚ್ಚು ಅಂಕೆಗಳ ಒಂದು ಸಂಖ್ಯೆಯನ್ನು ಪ್ರತಿನಿಧಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
ಅದು ಹಾಗೆ ಇರುತ್ತದೆ ಆದ್ದರಿಂದ ನೀವು ಸಹ ಬಿಟ್ಗಳು ಒಂದು ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ ನಿಯೋಜಿಸಿ
ನೀವು ಹೊಂದಬಹುದು ದೊಡ್ಡ ಘಾತ ಆದಂತೆ ನೀವು ಮಾತ್ರ, ಒಂದು ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ ಮೇಲಕ್ಕೆ ಹೋಗಬಹುದು,
ಮತ್ತು ನೀವು ಕೇವಲ ಒಂದು ನಿರ್ದಿಷ್ಟ ಘಾತ ಕೆಳಗೆ ಹೋಗಬಹುದು
ನೀವು ಹೊಂದಬಹುದು ಚಿಕ್ಕ ಘಾತ ಎಂದು ಇಷ್ಟ.
>> ನಾನು, ಸರಿಯಾದ ರೀತಿಯಲ್ಲಿ ಬಿಟ್ಗಳು ಈ ಮೌಲ್ಯಗಳ ಎಲ್ಲಾ ವಹಿಸಿಕೊಡಲಾಗುತ್ತದೆ ನೆನಪಿರುವುದಿಲ್ಲ
ಆದರೆ ಬಿಟ್ಗಳು ಒಂದು ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ, 1,2345 ಮೀಸಲಾಗಿವೆ
ಬಿಟ್ಗಳು ಮತ್ತೊಂದು ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ ಘಾತ ಮೀಸಲಾಗಿವೆ
ಮತ್ತು ಇದು ನಿಗದಿತ ಗಾತ್ರದ ಒಂದು ಘಾತ ಪ್ರತಿನಿಧಿಸಲು ಕೇವಲ ಸಾಧ್ಯತೆಯಿದೆ.
[ವಿದ್ಯಾರ್ಥಿ] ಮತ್ತು ಎರಡು? ಒಂದು ಹೆಚ್ಚುವರಿ ಉದ್ದ ಫ್ಲೋಟ್ ಹಾಗೆ? >> ಹೌದು.
ಈಗ ನೀವು ಬದಲಿಗೆ 4 ಬೈಟ್ಗಳು 8 ಬೈಟ್ಗಳು ಬಳಸುತ್ತಿರುವ ಹೊರತುಪಡಿಸಿ ಒಂದು ಫ್ಲೋಟ್ ಅದೇ ವಿಷಯ.
ಈಗ ನೀವು, 9 ಅಥವಾ 10 ಅಂಕೆಗಳನ್ನು ಅಂಕೆಗಳು ಬಳಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ
ಮತ್ತು ಈ 300 ಬದಲಿಗೆ 100 ವರೆಗೆ ಹೋಗಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. >> [ವಿದ್ಯಾರ್ಥಿ] ಸರಿ.
ಮತ್ತು ಫ್ಲೋಟ್ಗಳು ಸಹ 4 ಬೈಟ್ಗಳು ಇವೆ. >> ಹೌದು.
ಅಲ್ಲದೆ, ಮತ್ತೆ, ಅದು ಬಹುಶಃ ಸಾಮಾನ್ಯ ಅನುಷ್ಠಾನಕ್ಕೆ ಒಟ್ಟು ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ
ಆದರೆ ಫ್ಲೋಟ್ಗಳು 4 ಬೈಟ್ಗಳು ಗಳು, ಡಬಲ್ಸ್ 8.
ಅವರು ಎರಡು ಫ್ಲೋಟ್ಗಳು ಗಾತ್ರವನ್ನು ಏಕೆಂದರೆ ಡಬಲ್ಸ್ ಜೋಡಿ ಕರೆಯಲಾಗುತ್ತದೆ.
[ವಿದ್ಯಾರ್ಥಿ] ಸರಿ. ಹಾಗೂ ಎರಡು ಡಬಲ್ಸ್? >> ಇರುವುದಿಲ್ಲವಾದ್ದರಿಂದ.
ನನಗನ್ನಿಸುತ್ತದೆ - ದೀರ್ಘ ದೂರವುಳಿಯಬೇಕಾಗುತ್ತದೆ ಲೈಕ್ >> [ವಿದ್ಯಾರ್ಥಿ]? >> ಹೌದು. ನಾನು ಯೋಚಿಸುವುದಿಲ್ಲ. ಹೌದು.
ಕಳೆದ ವರ್ಷದ ಟೆಸ್ಟ್ ರಂದು [ವಿದ್ಯಾರ್ಥಿ] ಮುಖ್ಯ ಕಾರ್ಯ ಬಗ್ಗೆ ಒಂದು ಪ್ರಶ್ನೆ ಇತ್ತು
ನಿಮ್ಮ ಕಾರ್ಯಕ್ರಮದ ಭಾಗವಾಗಿ ಹೊಂದಿದೆ.
ಉತ್ತರ ನಿಮ್ಮ ಕಾರ್ಯಕ್ರಮದ ಭಾಗವಾಗಿ ಹೊಂದಿಲ್ಲ ಎಂದು.
ಯಾವ ಸಂದರ್ಭದಲ್ಲಿ? ನಾನು ನೋಡಿದ ಇಲ್ಲಿದೆ.
[ಬೌಡೆನ್] ಇದು ತೋರುತ್ತದೆ - >> [ವಿದ್ಯಾರ್ಥಿ] ಯಾವ ಸಂದರ್ಭದಲ್ಲಿ?
ನೀವು ಸಮಸ್ಯೆಯನ್ನು ಹೊಂದಿದ್ದೀರಾ? >> [ವಿದ್ಯಾರ್ಥಿ] ಹೌದು, ನಾನು ಖಂಡಿತವಾಗಿ ಇದು ಬರಬಹುದು.
ಇದು ತಾಂತ್ರಿಕವಾಗಿ, ಎಂದು ಹೊಂದಿಲ್ಲ, ಆದರೆ ಮೂಲಭೂತವಾಗಿ ಇದು ವಿಶೇಷವೇನು.
[ವಿದ್ಯಾರ್ಥಿ] ನಾನು ಬೇರೆ ವರ್ಷದ ಒಂದು ಕಂಡಿತು.
ಇದು ಸರಿ ಅಥವಾ ತಪ್ಪು ಹಾಗೆ: ಒಂದು ಮಾನ್ಯವಾದ - >> ಓಹ್, ಒಂದು ಸಿ ಕಡತ.?
. [ವಿದ್ಯಾರ್ಥಿ] ಯಾವುದೇ ಸಿ ಕಡತ ಹೊಂದಿರಬೇಕು - [ಒಟ್ಟಿಗೆ ಮಾತನಾಡುವ ಎರಡೂ - ಗ್ರಹಿಸುವುದಕ್ಕಾಗದ]
ಸರಿ. ಆದ್ದರಿಂದ ಪ್ರತ್ಯೇಕ ಇಲ್ಲಿದೆ.
>> ಎ. ಸಿ ಫೈಲ್ ಕೇವಲ ಕಾರ್ಯಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ ಅಗತ್ಯವಿದೆ.
ನೀವು ಒಂದು ಯಂತ್ರದ ಕೋಡ್ ಆಗಿ ಫೈಲ್, ದ್ವಿಮಾನ, ಏನೇ, ಸಂಕಲಿಸಬಲ್ಲ
ಇಲ್ಲದೆ ಇನ್ನೂ ಕಾರ್ಯಗತಗೊಳ್ಳುವ ಎಂದು.
ಒಂದು ಮಾನ್ಯವಾದ ಕಾರ್ಯಗತಗೊಳ್ಳುವ ಒಂದು ಮುಖ್ಯ ಕಾರ್ಯ ಹೊಂದಿರಬೇಕು.
ನೀವು 100 1 ಕಡತದಲ್ಲಿ ಕಾರ್ಯಗಳನ್ನು ಆದರೆ ಮುಖ್ಯ ಬರೆಯಬಹುದು
ತದನಂತರ, ಅವಳಿ ಎಂದು ಕೆಳಗೆ ಕಂಪೈಲ್
ನಂತರ ನೀವು ಕೇವಲ ಮುಖ್ಯ ಮತ್ತೊಂದು ಕಡತವನ್ನು ಬರೆಯಲು ಆದರೆ ಈ ಕಾರ್ಯಗಳನ್ನು ಕನಸುಗಳಿವೆ ಕರೆಗಳು
ಇಲ್ಲಿ ಈ ಅವಳಿ ಕಡತದಲ್ಲಿ.
ಆದ್ದರಿಂದ ನೀವು ಕಾರ್ಯಗತಗೊಳಿಸಬಲ್ಲ ಮಾಡುವ ಮಾಡಿದಾಗ, ಆ ಲಿಂಕರ್ ಮಾಡುತ್ತಾನೆ ಇಲ್ಲಿದೆ
ಈ 2 ಬೈನರಿ ಕಡತಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಆಗಿ ಸಂಯೋಜಿಸುತ್ತದೆ ಇದೆ.
ಆದ್ದರಿಂದ ಒಂದು. ಸಿ ಕಡತ ಎಲ್ಲಾ ಒಂದು ಮುಖ್ಯ ಫಂಕ್ಷನ್ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.
ಮತ್ತು ದೊಡ್ಡ ಕೋಡ್ ನೆಲೆಗಳ ಮೇಲೆ ನೀವು. ಸಿ ಕಡತಗಳು ಮತ್ತು 1 ಮುಖ್ಯ ಫೈಲ್ ಸಾವಿರಾರು ನೋಡುತ್ತಾರೆ.
ಹೆಚ್ಚು ಪ್ರಶ್ನೆಗಳು?
[ವಿದ್ಯಾರ್ಥಿ] ಮತ್ತೊಂದು ಪ್ರಶ್ನೆ ಉಂಟಾಗಿದೆ.
ಇದನ್ನು ಮಾಡಲು ಒಂದು ಕಂಪೈಲರ್ ಹೇಳಿದರು. ಟ್ರೂ ಅಥವಾ ತಪ್ಪು?
ಮತ್ತು ಉತ್ತರ ತಪ್ಪು ಮತ್ತು ಇದು ಖಣಿಲು ರೀತಿಯಲ್ಲಿ ಅಲ್ಲ ಏಕೆ ಅರ್ಥ.
ಆದರೆ ನಾವು ಅಲ್ಲ ವೇಳೆ ಮಾಡಲು ಯಾವ ಕರೆ ಮಾಡಬೇಡಿ?
ಮಾಡಿ ಕೇವಲ ಮೂಲಭೂತ - ನಾನು ಇದನ್ನು ಕರೆಗಳನ್ನು ನಿಖರವಾಗಿ ನೋಡಬಹುದು.
ಆದರೆ ಇದು ಕೇವಲ ಆಜ್ಞೆಗಳನ್ನು ಚಲಾಯಿಸುತ್ತದೆ.
ಮಾಡಿ.
ನಾನು ಈ ಅಪ್ ಬರಬಹುದು. ಹೌದು.
ಓಹ್, ಹೌದು. ಮಾಡಿ ಸಹ ಮಾಡುತ್ತದೆ.
ಈ ರೀತಿಯ ಉಪಯೋಗ ಉದ್ದೇಶಕ್ಕಾಗಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ಧರಿಸಲು ಹೇಳುತ್ತದೆ
ಒಂದು ದೊಡ್ಡ ಕಾರ್ಯಕ್ರಮದ ತುಣುಕುಗಳು recompiled ಅಗತ್ಯವಾಗಿದೆ
ಮತ್ತು ಅವುಗಳನ್ನು ಮರುಸಂಕಲಿಕೆಯು ಆಜ್ಞೆಯನ್ನು ನೀಡಿ.
ನೀವು ಸಂಪೂರ್ಣವಾಗಿ ದೊಡ್ಡ ಫೈಲ್ಗಳನ್ನು ಮಾಡಲು ಮಾಡಬಹುದು.
ಮಾಡಿ, ನಾವು ಮೊದಲೇ ಹೇಳಿದ ಹಾಗೆ, ಕಡತಗಳ ಸಮಯ ಅಂಚೆಚೀಟಿಗಳು ನೋಡುತ್ತದೆ ಮತ್ತು
ನೀವು ವೈಯಕ್ತಿಕ ಕಡತಗಳು ಕೆಳಗೆ ಸಂಕಲಿಸಬಲ್ಲ, ಮತ್ತು ನೀವು ಲಿಂಕರ್ ಪಡೆಯಲು ಅದು ಅಲ್ಲ
ಅವರು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಸೇರಿಸಿ ನೀವು.
ನೀವು 10 ವಿಭಿನ್ನ ಕಡತಗಳು ಮತ್ತು ನೀವು, ಅವುಗಳಲ್ಲಿ 1 ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲು ಆದ್ದರಿಂದ
ನಂತರ ಯಾವ ರೀತಿಯ ಮಾಡಲು ಹೋಗಿ ಸ್ವಲ್ಪ ಮರುಸಂಕಲಿಕೆಯು ಎಂದು 1 ಕಡತ
ಮತ್ತು ನಂತರ ಒಟ್ಟಿಗೆ ಎಲ್ಲವೂ relink.
ಆದರೆ ಅದು ಹೆಚ್ಚು ಡಂಬರ್ ನ.
ಇದು ಸಂಪೂರ್ಣವಾಗಿ ಅದು ಏನು ಮಾಡಬೇಕು ಏನು ಎಂಬುದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಅಪ್ ನಿಮಗೆ ಇಲ್ಲಿದೆ.
ಇದು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಈ ಬಾರಿ ಅಂಚೆಚೀಟಿ ವಿಷಯವನ್ನು ಗುರುತಿಸುವ ಸಾಮರ್ಥ್ಯ ಹೊಂದಿದೆ
ಆದರೆ ನೀವು ಏನು ಒಂದು ರೀತಿಯ ಕಡತ ಬರೆಯಬಹುದು.
ನೀವು ಬರೆಯಬಹುದು ಫೈಲ್ ಮಾಡಲು ಆದ್ದರಿಂದ ನೀವು ಕೇವಲ CD ನ ಮತ್ತೊಂದು ಕೋಶವನ್ನು ಮಾಡಲು ಟೈಪ್ ಮಾಡಿದಾಗ.
ನಾನು ನಿರಾಶೆಗೊಂಡ ದೊರಕಿತು ನಾನು ಸ್ಪಂದನ ಎಲ್ಲವೂ ನನ್ನ ಯಂತ್ರ ಒಳಗೆ ಏಕೆಂದರೆ
ತದನಂತರ ನಾನು ಮ್ಯಾಕ್, PDF ವೀಕ್ಷಿಸಲು.
>> ಹಾಗಾಗಿ ಫೈಂಡರ್ ಹೋಗಿ ನಾನು ಹೋಗಿ ಮಾಡಬಹುದಾದ, ಪರಿಚಾರಕಕ್ಕೆ ಸಂಪರ್ಕ,
ಮತ್ತು ನಾನು ಸಂಪರ್ಕ ಸರ್ವರ್ ನನ್ನ ಯಂತ್ರ, ಮತ್ತು ನಂತರ ನಾನು ಪಿಡಿಎಫ್ ತೆರೆಯುತ್ತದೆ
ಲ್ಯಾಟೆಕ್ಸ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಿದ ಮುಟ್ಟುತ್ತದೆ.
ಆದರೆ ನಾನು ನಿರಾಶೆಗೊಂಡ ದೊರಕಿತು ನಾನು ಪಿಡಿಎಫ್ ರಿಫ್ರೆಶ್ ಅಗತ್ಯವಿದೆ ಪ್ರತಿಯೊಂದು ಸಮಯ ಏಕೆಂದರೆ,
ನಾನು ಇದನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಒಂದು ನಿರ್ದಿಷ್ಟ ಕೋಶವನ್ನು ನಕಲಿಸುವುದು ಹೊಂದಿತ್ತು
ಮತ್ತು ಕಿರಿಕಿರಿ ದೊರಕಿತು.
ಆದ್ದರಿಂದ ಬದಲಿಗೆ ನಾನು ನೀವು ವಿಷಯಗಳನ್ನು ಮಾಡುತ್ತದೆ ಹೇಗೆ ವ್ಯಾಖ್ಯಾನಿಸಲು ಹೊಂದಿರುವ ಒಂದು ರೀತಿಯ ಕಡತ, ಬರೆದರು.
ನೀವು ಮಾಡಲು ಹೇಗೆ ಈ PDF LaTeX ಹೊಂದಿದೆ.
ಬೇರಾವುದೇ ರೀತಿಯ ಕಡತವನ್ನು - ಅಥವಾ ನಾನು ನಿಮ್ಮ ಫೈಲ್ಗಳನ್ನು ನೋಡಿಯೇ ಇಲ್ಲ ಊಹೆ,
ಆದರೆ, ಯಂತ್ರ ಕೇವಲ ಹೇಳುತ್ತದೆ ಜಾಗತಿಕ ರೀತಿಯ ಕಡತ ಹೊಂದಿವೆ
ನೀವು ಒಂದು ಸಿ ಕಡತ ಕಂಪೈಲ್ ಎಂದಿಟ್ಟುಕೊಳ್ಳಿ, ಖಣಿಲು ಬಳಸಿ.
ಮತ್ತು ಇಲ್ಲಿ ನನ್ನ ರೀತಿಯ ಕಡತದಲ್ಲಿ ನಾನು ಹೇಳಲು ಮಾಡುವ,
ಈ ಕಡತವನ್ನು ನೀವು ಪಿಡಿಎಫ್ LaTeX ಜೊತೆಗೆ ಕಂಪೈಲ್ ಮಾಡಲು ಬಯಸುವ ಎಂದು ನೀನು.
ಮತ್ತು ಆದ್ದರಿಂದ ಇದು ಸಂಗ್ರಹ ಮಾಡುತ್ತಿದ್ದಾರೆ ಎಂದು ಪಿಡಿಎಫ್ LaTeX ಇಲ್ಲಿದೆ.
ಮಾಡಿ ಕಂಪೈಲ್ ಇಲ್ಲ. ಅದು ನಾನು ಸೂಚಿಸಿದ ಅನುಕ್ರಮದಲ್ಲಿ ಈ ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸುವುದರಿಂದ ನ.
ಆದ್ದರಿಂದ ಪಿಡಿಎಫ್ LaTeX ನಡೆಸುತ್ತದೆ, ಇದು, ನಾನು ನಕಲಿಸಿದ ಬೇಕಿರುವ ಕೋಶದ ಅದನ್ನು ನಕಲಿಸುತ್ತದೆ
ಇದು CD ನಿರ್ದೇಶಿಕೆ ಮತ್ತು ಇತರ ಕೆಲಸಗಳನ್ನು
ಆದರೆ ಅದು ಎಲ್ಲಾ, ಒಂದು ಕಡತ ಬದಲಾವಣೆಗಳನ್ನು ಗುರುತಿಸಲು ಇದೆ
ಇದನ್ನು ಬದಲಾಯಿಸಿದರೆ ಮತ್ತು, ನಂತರ ಅದು ಚಲಾಯಿತಗೊಳ್ಳಬೇಕು ಎಂದು ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಿ ಕಾಣಿಸುತ್ತದೆ
ಆಗ ಫೈಲ್ ಬದಲಾವಣೆಗಳು. >> [ವಿದ್ಯಾರ್ಥಿ] ಸರಿ.
ನಾನು ಜಾಗತಿಕ ರೀತಿಯ ಕಡತಗಳನ್ನು ನನಗೆ ಅದನ್ನು ಪರಿಶೀಲಿಸಲು ಮಾತ್ರ ಅಲ್ಲಿ ಗೊತ್ತಿಲ್ಲ.
ಇತರ ಪ್ರಶ್ನೆಗಳು? ಹಿಂದಿನ ಏನು ರಸಪ್ರಶ್ನೆಗಳು? ಯಾವುದೇ ಪಾಯಿಂಟರ್ ವಿಷಯಗಳನ್ನು?
ನಂತಹ ಪಾಯಿಂಟರ್ಸ್ ಜೊತೆಗೆ ಸೂಕ್ಷ್ಮ ವಿಷಯಗಳನ್ನು -
ನಾನು ಒಂದು ರಸಪ್ರಶ್ನೆ ಪ್ರಶ್ನೆ ಪತ್ತೆ ಹೋಗುವ ಇಲ್ಲ -
ಆದರೆ ವಿಷಯ ಈ ರೀತಿಯ ಹಾಗೆ.
ನಾನು ಹೇಳಲು ನೀವು ಎಂದು ಅರ್ಥ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಇಂಟ್ * X * ವೈ -
ಈ ನಿಖರವಾಗಿ ಇಲ್ಲಿ ಏನು ಇಲ್ಲ, ನಾನು ಭಾವಿಸುತ್ತೇನೆ.
ಆದರೆ ಹಾಗೆ * x * y, ಆ ಸ್ಟಾಕ್ ಮೇಲೆ ಎಂದು 2 ಚರಗಳಾಗಿವೆ.
ನಾನು ಹೇಳುವುದಾದರೆ X = malloc (sizeof (ಇಂಟ್)), X, ಇನ್ನೂ ಸ್ಟಾಕ್ ಮೇಲೆ ವ್ಯತ್ಯಯ
malloc ಹೇರಳ ಬಗ್ಗೆ ಬ್ಲಾಕ್, ಮತ್ತು ನಾವು ರಾಶಿ, x ಪಾಯಿಂಟ್ ಎದುರಿಸುತ್ತಿದ್ದೇವೆ.
>> ರಾಶಿ ಗೆ ಸ್ಟಾಕ್ ಅಂಶಗಳ ಏನೋ ಹಾಗೆ.
ಯಾವಾಗ ನೀವು malloc ಏನು, ನೀವು ಅನಿವಾರ್ಯವಾಗಿ ಇದು ಒಂದು ಪಾಯಿಂಟರ್ ಒಳಗೆ ಸಂಗ್ರಹಿಸಲು ನೀವು.
ಆ ಪಾಯಿಂಟರ್ ಸ್ಟಾಕ್ ಮೇಲೆ ಆದ್ದರಿಂದ, malloced ಬ್ಲಾಕ್ ರಾಶಿ ಮೇಲೆ.
ಬಹಳಷ್ಟು ಜನರು ಗೊಂದಲ ಪಡೆಯಲು ಮತ್ತು ಹೇಳುತ್ತಾರೆ ಇಂಟ್ * X = malloc; X ರಾಶಿ ಮೇಲೆ.
X ಸೂಚಿತವಾಗಿರುತ್ತದೆ ಏನು ನಂ ರಾಶಿ ಮೇಲೆ.
ಯಾವುದೇ ಕಾರಣಕ್ಕೆ ನೀವು X ಜಾಗತಿಕ ವೇರಿಯಬಲ್ ಎಂದು ಹೊರತು X ಸ್ವತಃ, ಸ್ಟಾಕ್ ಮೇಲೆ
ಈ ನಿದರ್ಶನದಲ್ಲಿ ಇದನ್ನು ಮೆಮೊರಿ ಇನ್ನೊಂದು ಪ್ರದೇಶದಲ್ಲಿ ಎಂದು ಸಂಭವಿಸುತ್ತದೆ.
ಗಮನವಿಡುತ್ತಾ ಆದ್ದರಿಂದ, ಈ ಬಾಕ್ಸ್ ಮತ್ತು ಬಾಣದ ಚಿತ್ರಗಳು ರಸಪ್ರಶ್ನೆ ಫಾರ್ ಬಹಳ ಸಾಮಾನ್ಯವಾಗಿದೆ.
ಇದು ರಸಪ್ರಶ್ನೆ 0 ಮೇಲೆ ಅಲ್ಲ ಅಥವಾ, ಇದು ರಸಪ್ರಶ್ನೆ 1 ರಂದು ನಡೆಯಲಿದೆ.
ನೀವು, ಕಂಪೈಲ್ ಹಂತಗಳಲ್ಲಿ ಈ ಎಲ್ಲಾ ತಿಳಿದುಕೊಳ್ಳಲೇಬೇಕಾದ
ನೀವು ಮೇಲೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಉತ್ತರಿಸಲು ಕಾರಣ. ಹೌದು.
[ವಿದ್ಯಾರ್ಥಿ] ನಾವು ಆ ಕ್ರಮಗಳನ್ನು ಮೇಲೆ ಹೋಗಿ ಕುಡ್ - >> ಖಂಡಿತ.
ಹಂತಗಳು ಮತ್ತು ಕಂಪೈಲ್ ಮೊದಲು ನಾವು, ಪೂರ್ವಸಂಸ್ಕರಣೆಯನ್ನು ಹೊಂದಿವೆ
, ಕಂಪೈಲ್ ಜೋಡಣೆ, ಮತ್ತು ಲಿಂಕ್.
ಪೂರ್ವಸಂಸ್ಕರಣೆಯನ್ನು. ಅದು ಏನು ಮಾಡುತ್ತದೆ?
ಇದು ಸುಲಭ ಹಂತ - ಚೆನ್ನಾಗಿ ಅಲ್ಲದ ರೀತಿಯಲ್ಲಿ -
ಇದು ಸ್ಪಷ್ಟ ಇರಬೇಕು ಎಂದಲ್ಲ, ಆದರೆ ಸುಲಭವಾದ ಹಂತ ನ.
ನೀವು ಹುಡುಗರಿಗೆ ಇದು ನಿಮ್ಮನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸಾಧ್ಯವಾಯಿತು. ಹೌದು.
[ವಿದ್ಯಾರ್ಥಿ] ಯಾವುದು ನಿಮ್ಮ ಮೇಲೂ ಈ ರೀತಿಯ ಒಳಗೊಂಡಿದೆ ಟೇಕ್ ಮತ್ತು ನಕಲಿಸುತ್ತದೆ ತದನಂತರ ಸಹ ವರ್ಣಿಸಬಹುದು.
ಇದು, # ಸೇರಿವೆ ವಿಷಯಗಳನ್ನು ಹುಡುಕುತ್ತದೆ ಮತ್ತು # ವ್ಯಾಖ್ಯಾನಿಸಲು
ಮತ್ತು ಇದು ಕೇವಲ ಪ್ರತಿಗಳು ಮತ್ತು ಜಲಪಿಷ್ಟಗಳು ಆ ವಾಸ್ತವವಾಗಿ ಏನು.
ಆದ್ದರಿಂದ ನೀವು # cs50.h ಸೇರಿವೆ ಹೇಳುವುದಾದರೆ, ಪ್ರಿಪ್ರೊಸೆಸರ್ ನಕಲು ಮತ್ತು cs50.h ಅಂಟಿಸಲು ಇದೆ
ಆ ಮಾರ್ಗ.
ನೀವು # 4 ಎಂದು X ವ್ಯಾಖ್ಯಾನಿಸಲು ಹೇಳುವುದಾದರೆ, ಪ್ರಿಪ್ರೊಸೆಸರ್ ಇಡೀ ಕಾರ್ಯಕ್ರಮದ ಮೂಲಕ ಹೋಗುತ್ತದೆ
ಮತ್ತು 4 X ಎಲ್ಲಾ ಸಂದರ್ಭಗಳಲ್ಲಿ ಬದಲಾಯಿಸುತ್ತದೆ.
ಆದ್ದರಿಂದ ಪ್ರಿಪ್ರೊಸೆಸರ್ ಮಾನ್ಯ ಸಿ ಕಡತ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಮಾನ್ಯ ಸಿ ಕಡತ ಹೊರತರುವ
ಅಲ್ಲಿ ವಸ್ತುಗಳನ್ನು ನಕಲು ಮತ್ತು ಅಂಟಿಸಲು ಮಾಡಲಾಗಿದೆ.
ಈಗ ಕಂಪೈಲ್. ಅದು ಏನು ಮಾಡುತ್ತದೆ?
[ವಿದ್ಯಾರ್ಥಿ] ಇದು C ರಿಂದ ಅವಳಿ ಹೋಗುತ್ತದೆ.
>> [ಬೌಡೆನ್] ಇದು ಅವಳಿ ಎಲ್ಲಾ ರೀತಿಯಲ್ಲಿ ಹೋಗುವುದಿಲ್ಲ.
[ವಿದ್ಯಾರ್ಥಿ] ಯಂತ್ರದ ಕೋಡ್ ನಂತರ? >> ಇದು ಯಂತ್ರ ಕೋಡ್ ಅಲ್ಲ.
[ವಿದ್ಯಾರ್ಥಿ] ಅಸೆಂಬ್ಲಿ? >> ಅಸೆಂಬ್ಲಿ.
ಅದು ಸಿ ಕೋಡ್ ಎಲ್ಲಾ ರೀತಿಯಲ್ಲಿ ಹೋಗುವ ಮುಂಚೆ ಇದು ಅಸೆಂಬ್ಲಿ ಹೋಗುತ್ತದೆ,
ಮತ್ತು ಬಹುತೇಕ ಭಾಷೆಗಳಲ್ಲಿ ಈ ರೀತಿಯ ಏನಾದರೂ.
ಯಾವುದೇ ಉನ್ನತ ಮಟ್ಟದ ಭಾಷೆಯನ್ನು ಆರಿಸಿ, ಮತ್ತು ನೀವು ಅದನ್ನು ಸಂಕಲಿಸಲು ನೀನು ವೇಳೆ,
ಇದು ಹಂತಗಳಲ್ಲಿ ಕಂಪೈಲ್ ಸಾಧ್ಯತೆಯಿದೆ.
ಮೊದಲು ಸಿ ಗೆ ಪೈಥಾನ್ ಕಂಪೈಲ್ ಹೋಗುವುದಿಲ್ಲ, ನಂತರ, ಅಸೆಂಬ್ಲಿಗೆ ಸಿ ಸಂಕಲಿಸಲು ವಿಶೇಷವೇನು
ತದನಂತರ ಅಸೆಂಬ್ಲಿ ದ್ವಿಮಾನ ಅನುವಾದ ಕಾಣುವುದು ಇದೆ.
ಆದ್ದರಿಂದ ಕಂಪೈಲ್ C ದಿಂದ ಅಸೆಂಬ್ಲಿಗೆ ಇದು ತರಲಿದೆ.
ಕಂಪೈಲ್ ಪದ ಸಾಮಾನ್ಯವಾಗಿ ಹೆಚ್ಚಿನ ಮಟ್ಟದ ಇದನ್ನು ತರುವ ಅರ್ಥ
ಕಡಿಮೆ ಮಟ್ಟದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ.
ಆದ್ದರಿಂದ ಇದು ಒಂದು ಉನ್ನತ ಮಟ್ಟದ ಭಾಷೆಯನ್ನು ಪ್ರಾರಂಭವಾಗುತ್ತವೆ ಸಂಕಲನ ಮಾತ್ರ ಹೆಜ್ಜೆ
ಮತ್ತು ಒಂದು ಕಡಿಮೆ ಮಟ್ಟದ ಭಾಷೆಯಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ, ಮತ್ತು ಹಂತದ ಕಂಪೈಲ್ ಕರೆಯಲಾಗುತ್ತದೆ ಏಕೆ ಆ ನ.
ಕಂಪೈಲ್ ಅವಧಿಯಲ್ಲಿ [ವಿದ್ಯಾರ್ಥಿ], ನ ನೀವು # ಸೇರಿವೆ ಮಾಡಿದ ಹೇಳುತ್ತಾರೆ ಅವಕಾಶ cs50.h.
ಕಂಪೈಲರ್ ಮರುಸಂಕಲಿಕೆಯು cs50.h ತಿನ್ನುವೆ, ಇಲ್ಲ ಎಂದು ಕಾರ್ಯಗಳನ್ನು ಹಾಗೆ,
ಮತ್ತು, ಮತ್ತು ಆ ಅಸೆಂಬ್ಲಿ ಕೋಡ್ ಭಾಷಾಂತರಿಸಿ
ಅಥವಾ ಪೂರ್ವ ಸಭೆ ಎಂದು ಏನೋ ನಕಲಿಸಿ ಮತ್ತು ಅಂಟಿಸಿ ಕಾಣಿಸುತ್ತದೆ?
cs50.h ಅತ್ಯಧಿಕವಾಗಿ ಅಸೆಂಬ್ಲಿಯಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ ಎಂದಿಗೂ.
ಕಾರ್ಯ ಮೂಲಮಾದರಿಗಳ ಮತ್ತು ವಸ್ತುಗಳ ರೀತಿಯ ವಿಷಯವನ್ನು ನೀವು ಎಚ್ಚರಿಕೆಯಿಂದ ಎಂದು ಕೇವಲ ಮಾತ್ರ.
ನೀವು ಕಾರ್ಯಗಳನ್ನು ಕರೆ ಮಾಡುತ್ತಿರುವಂತೆ ಕಂಪೈಲರ್ ವಿಷಯಗಳನ್ನು ಪರಿಶೀಲಿಸಿ ಎಂದು ನೀಡುತ್ತದೆ
ಬಲ ರಿಟರ್ನ್ ರೀತಿಯ ಮತ್ತು ಬಲ ವಾದಗಳನ್ನು ಹಾಗೂ ಪದಾರ್ಥದಂತೆ.
>> ಇದು ಕಂಪೈಲ್ ಮಾಡಿದ ಆದ್ದರಿಂದ cs50.h ನಂತರ ಫೈಲ್ ಆಗಿ ಪೂರ್ವಭಾವಿಯಾಗಿ, ಮತ್ತು ಕಾಣಿಸುತ್ತದೆ
ಎಲ್ಲವೂ ಸರಿಯಾಗಿ ಕರೆಯಲಾಗುತ್ತದೆ ಎಂದು ಖಚಿತವಾಗಿ ಮಾಡುತ್ತದೆ ನಂತರ ಮೂಲಭೂತವಾಗಿ ಬಿಸಾಡಲಾಗಿದೆಯೆಂದು ನ.
ಆದರೆ CS50 ಗ್ರಂಥಾಲಯದ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ ಕಾರ್ಯಗಳನ್ನು, cs50.h ಪ್ರತ್ಯೇಕವಾಗಿ ಅವು
ಆ ಪ್ರತ್ಯೇಕವಾಗಿ ಕಂಪೈಲ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
ವಾಸ್ತವವಾಗಿ ಲಿಂಕ್ ಹಂತದಲ್ಲಿ ಕೆಳಗೆ ಬರುತ್ತದೆ ಎಂದು, ಆದ್ದರಿಂದ ನಾವು ಎರಡನೇ ಆ ಪಡೆಯುತ್ತೀರಿ.
ಆದರೆ ಮೊದಲ, ಏನು ಜೋಡಣೆ ಇದೆ?
ದ್ವಿಮಾನ [ವಿದ್ಯಾರ್ಥಿ] ಅಸೆಂಬ್ಲಿ? >> ಹೌದು.
ಜೋಡಣೆ.
ಅಸೆಂಬ್ಲಿ ಅತ್ಯಧಿಕವಾಗಿ ಅವಳಿ ಒಂದು ಶುದ್ಧ ಅನುವಾದ ಏಕೆಂದರೆ ನಾವು ಕಂಪೈಲ್ ಕರೆ ಮಾಡಬೇಡಿ.
ಅಸೆಂಬ್ಲಿ ರಿಂದ ಅವಳಿ ಹೋಗುವುದು ಬಹಳ ಕಡಿಮೆ ಲಾಜಿಕ್ ಇಲ್ಲ.
ಇದು ಕೇವಲ ಒಂದು ಕೋಷ್ಟಕದಲ್ಲಿ ಕಾಣುವ ರೀತಿ, ಓಹ್, ನಾವು ಈ ಸೂಚನಾ ಹೊಂದಿರುತ್ತವೆ;
ಆ ಅವಳಿ 01110 ಅನುರೂಪವಾಗಿದೆ.
ಆದ್ದರಿಂದ ಕಡತಗಳು ಎಂದು ಉತ್ಪನ್ನಗಳೆಂದರೆ ಸಾಮಾನ್ಯವಾಗಿ ಜೋಡಣೆ. ಒ ಕಡತಗಳು.
ಮತ್ತು. ಒ ಕಡತಗಳನ್ನು ನಾವು ಮೊದಲು ಹೇಳುವ ಎಂಬುದನ್ನು ಇವು,
ಹೇಗೆ ಫೈಲ್ ಮುಖ್ಯ ಫಂಕ್ಷನ್ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.
ಯಾವುದೇ ಕಡತ ಇದು ಮಾನ್ಯ ಸಿ ಕಡತದ ತನಕ ಒಂದು. ಓ ಫೈಲ್ ಕೆಳಗೆ ಸಂಕಲನ ಮಾಡಬಹುದು.
ಇದು. ಓ ಕೆಳಗೆ ಸಂಕಲನ ಮಾಡಬಹುದು.
ಈಗ ಲಿಂಕ್. ವಾಸ್ತವವಾಗಿ ಒಂದು ಗುಂಪೇ ತೆರೆದಿಡುತ್ತದೆ ವಾಟ್ ಓ ಕಡತಗಳನ್ನು ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಅವರನ್ನು ತೆರೆದಿಡುತ್ತದೆ.
ಆದ್ದರಿಂದ ಯಾವ ಲಿಂಕಿಂಗ್ ಮಾಡುತ್ತದೆ ನೀವು. ಓ ಫೈಲ್ CS50 ಗ್ರಂಥಾಲಯದ ನಗರದ ಹೊಂದಿದೆ.
ಇದು ಈಗಾಗಲೇ ಕಂಪೈಲ್ ದ್ವಿಮಾನ ಫೈಲ್ ಆಗಿದೆ.
ಆದ್ದರಿಂದ ನೀವು GetString ಕರೆಗಳನ್ನು ನಿಮ್ಮ ಕಡತ, ನಿಮ್ಮ hello.c, ಕಂಪೈಲ್ ಮಾಡುವಾಗ
hello.c, hello.o ಕೆಳಗೆ ಕಂಪೈಲ್ ಮುಟ್ಟುತ್ತದೆ
hello.o ಬೈನರಿ ಈಗ.
, ಇದು GetString ಬಳಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಇದು cs50.o ಗೆ ಹೋಗಲು ಅಗತ್ಯವಿದೆ
ಮತ್ತು ಲಿಂಕರ್ ಒಟ್ಟಿಗೆ ಅವುಗಳನ್ನು smooshes ಮತ್ತು ಈ ಫೈಲ್ ಆಗಿ GetString ನಕಲಿಸುತ್ತದೆ
ಮತ್ತು ಇದು ಅಗತ್ಯವಿದೆ ಎಲ್ಲಾ ಕಾರ್ಯಗಳನ್ನು ಹೊಂದಿರುವ ಕಾರ್ಯಕಾರಿ ಹೊರಬರುತ್ತದೆ.
ಆದ್ದರಿಂದ cs50.o ವಾಸ್ತವವಾಗಿ ಒ ಫೈಲ್ ಆಗಿಲ್ಲ, ಆದರೆ ಯಾವುದೇ ಮೂಲಭೂತ ವ್ಯತ್ಯಾಸವನ್ನು ಆತ್ಮೀಯ ಅಷ್ಟು ಸಾಕು.
ಆದ್ದರಿಂದ ಕೇವಲ ಲಿಂಕ್ ಒಟ್ಟಿಗೆ ಕಡತಗಳ ಒಂದು ಗುಂಪೇ ತೆರೆದಿಡುತ್ತದೆ
ಪ್ರತ್ಯೇಕವಾಗಿ ಕಾರ್ಯಗಳನ್ನು ಎಲ್ಲಾ ಪದಗಳಿಂದಕೂಡಿದೆ ನಾನು ಬಳಸಬೇಕಾಗಬಹುದು
ಮತ್ತು ವಾಸ್ತವವಾಗಿ ಓಡಿದ ಕಾಣಿಸುತ್ತದೆ ಕಾರ್ಯಗತಗೊಳ್ಳುವ ಸೃಷ್ಟಿಸುತ್ತದೆ.
>> ಮತ್ತು ಆದ್ದರಿಂದ ನಾವು ಮೊದಲು ಹೇಳುವ ಎಂಬುದನ್ನು ಮೈದಾನವು
ನೀವು 1000 ಹೊಂದಬಹುದು. ಸಿ ಕಡತಗಳನ್ನು, ನೀವು ಅವರನ್ನು ಎಲ್ಲಾ ಕಂಪೈಲ್. ಓ ಫೈಲ್,
ಬಹುಶಃ ಸ್ವಲ್ಪ ಮಾಡುತ್ತದೆ, ನಂತರ ನೀವು 1 ಬದಲಾಯಿಸಬಹುದು. ಸಿ ಕಡತ.
ನೀವು ಮಾತ್ರ 1. ಸಿ ಕಡತ ತದನಂತರ ಬೇರೆ relink ಎಲ್ಲವೂ, ಮರುಸಂಕಲಿಕೆಯು ಅಗತ್ಯವಿದೆ
ಮತ್ತೆ ಒಟ್ಟಿಗೆ ಎಲ್ಲವೂ ಲಿಂಕ್.
[ವಿದ್ಯಾರ್ಥಿ] ನಾವು lcs50 ಬರೆಯಲು ಲಿಂಕ್ ನೀವು?
ಹೌದು, ಆದ್ದರಿಂದ lcs50. ಆ ಗ್ರಂಥಾಲಯದಲ್ಲಿ ಲಿಂಕ್ ಎಂದು ಲಿಂಕರ್ ಆ ಧ್ವಜ ಸಂಕೇತಗಳನ್ನು.
ಪ್ರಶ್ನೆಗಳು?
ನಾವು ಮೊದಲ ಉಪನ್ಯಾಸ ಆ 5 ಸೆಕೆಂಡುಗಳ ಬೇರೆ ಬೈನರಿ ಮೇಲೆ ಹೋದವು?
ನಾನು ಯೋಚಿಸುವುದಿಲ್ಲ.
ನೀವು, ನಾವು ಮೇಲೆ ಹೋಗಿದ್ದೀರಿ ದೊಡ್ಡ ಒಗಳನ್ನು ಎಲ್ಲಾ ತಿಳಿದುಕೊಳ್ಳಲೇಬೇಕಾದ
ನೀವು ಒಂದು ಕಾರ್ಯ ನೀಡಿದರೆ ಮತ್ತು ನೀವು, ಸಾಧ್ಯವಾಗುತ್ತದೆ
ನೀವು ಇದನ್ನು ಸ್ಥೂಲವಾಗಿ, ದೊಡ್ಡ ಒ ಹೇಳುತ್ತಾರೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಅಥವಾ ಅಲ್ಲದೆ, ದೊಡ್ಡ ಒ ಒರಟಾಗಿ.
ನೀವು ವಿಷಯಗಳನ್ನು ಒಂದೇ ಸಂಖ್ಯೆಯ ಮೇಲೆ ಲೂಪ್ ಕುಣಿಕೆಗಳು ಫಾರ್ ರೀತಿಯಲ್ಲಿ ನೋಡಿ ವೇಳೆ,
>> [ವಿದ್ಯಾರ್ಥಿ] N ವರ್ಗ - ಇಂಟ್ ಜೆ, J <N; ಇಂಟ್ ನಾನು > ಇದು ವರ್ಗ ಎಂದು N ಒಲವು.
ನೀವು ಮೂರು ರೀತಿಯಲ್ಲಿ, ಅದು n ನ ಘಾತ ಕಾಣುತ್ತಾರೆ.
ಆದ್ದರಿಂದ ವಿಷಯ ಆ ರೀತಿಯ ನೀವು ತಕ್ಷಣ ಎತ್ತಿ ಸಾಧ್ಯವಾಗುತ್ತದೆ.
ನೀವು ಅಳವಡಿಕೆಯ ರೀತಿಯ ಮತ್ತು ಬಬಲ್ ರೀತಿಯ ತಿಳಿಯಲು ಮತ್ತು ರೀತಿಯ ಮತ್ತು ಆ ಎಲ್ಲಾ ವಿಲೀನಗೊಳ್ಳಲು ಅಗತ್ಯವಿದೆ.
ಅವರು ಆ N ವರ್ಗ ಮತ್ತು N ಲಾಗ್ N ಮತ್ತು ಎಲ್ಲಾ ಏಕೆ ಇದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸುಲಭ
ನಾವು ಮೂಲತಃ ನೀವು ನೀಡಿದ ಅಲ್ಲಿ ಒಂದು ವರ್ಷ ರಸಪ್ರಶ್ನೆ ಮೇಲೆ ಭಾವಿಸಿದೆವು ಏಕೆಂದರೆ
ಬಬಲ್ ರೀತಿಯ ಅಳವಡಿಕೆಯಾಗಿದೆ ಮತ್ತು "ಈ ಕ್ರಿಯೆಯ ಚಾಲನೆಯ ಸಮಯ ಯಾವುದು?" ಹೇಳಿದರು
ನೀವು ಬಬಲ್ ತೆರನಾದ ಅದನ್ನು ಗುರುತಿಸಲು ಎಷ್ಟು ವೇಳೆ, ನಂತರ ನೀವು ತಕ್ಷಣ N ವರ್ಗ ಹೇಳಬಹುದು.
ನೀವು ಅದನ್ನು ನೋಡಲು ಆದರೆ ನೀವು ಅದನ್ನು ಗುಳ್ಳೆ ರೀತಿಯ ಅರ್ಥ ಅಗತ್ಯವಿಲ್ಲ;
ನೀವು ಈ ಈ ಈ ರೀತಿ ಇದೆ ಹೇಳಬಹುದು. ಈ ವರ್ಗ n ಇದೆ.
[ವಿದ್ಯಾರ್ಥಿ] ನಿಮಗೆ ಬರಬಹುದು ಯಾವುದೇ ಕಠಿಣ ಉದಾಹರಣೆಗಳಿವೆ,
ಹುಡುಕುವ ಇದೇ ಯೋಚನೆಯನ್ನು?
>> ನಾವು ನೀವು ಯಾವುದೇ ಕಠಿಣ ಉದಾಹರಣೆಗಳನ್ನು ನೀಡುತ್ತದೆ ಯೋಚಿಸುವುದಿಲ್ಲ.
ಬಬಲ್ ರೀತಿಯ ವಿಷಯ, ನಾವು ಹೋಗುತ್ತಿದ್ದೆ ಎಂದು ಸುಮಾರು ಕಠಿಣ ಆಗಿದೆ
ಮತ್ತು ಅಲ್ಲಿಯವರೆಗೆ ನೀವು ಅರ್ಥ ಎಂದು ನೀವು ರಚನೆಯ ಮೇಲೆ iterating ನೀವು ಆ
ಶ್ರೇಣಿಯಲ್ಲಿನ ಪ್ರತಿ ಅಂಶ, ಇದು ವರ್ಗ n ಎಂದು ಏನೋ ಎಂದು ಹೋಗುತ್ತದೆ.
ನಾವು ಇಲ್ಲಿಯೇ ಮುಂತಾದ ಸಾಮಾನ್ಯ ಪ್ರಶ್ನೆಗಳು ಇವೆ - ಓ.
ಕೇವಲ ಇತರ ದಿನ, ಡೌಗ್ ಹೇಳಿದರು, "ನಾನು ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಇವನ್ನು ಒಂದು ಕ್ರಮಾವಳಿ ಆವಿಷ್ಕರಿಸಿರುವುದಾಗಿ
"ಓ (ಲಾಗ್ N) ಸಮಯ! ರಲ್ಲಿ N ಸಂಖ್ಯೆಗಳ"
ಆದ್ದರಿಂದ ಹೇಗೆ ನಾವು ಅಸಾಧ್ಯ ತಿಳಿಯುವುದು?
[ಕೇಳಿಸುವುದಿಲ್ಲ ವಿದ್ಯಾರ್ಥಿ ಪ್ರತಿಕ್ರಿಯೆ] >> ಹೌದು.
ಅತ್ಯಂತ ಕನಿಷ್ಠ ನೀವು, ಶ್ರೇಣಿಯಲ್ಲಿನ ಪ್ರತಿ ಅಂಶ ಸ್ಪರ್ಶಕ್ಕೆ ಹೊಂದಿವೆ
ಆದ್ದರಿಂದ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ವಿಂಗಡಿಸಲು ಅಸಾಧ್ಯ -
ಎಲ್ಲವನ್ನೂ ಆಯ್ದ ಸಲುವಾಗಿ ವೇಳೆ, ನಂತರ ನೀವು, ಶ್ರೇಣಿಯಲ್ಲಿನ ಎಲ್ಲವೂ ಮುಟ್ಟುವಂತೆ ಮಾಡಲು ನೀನು
ಆದ್ದರಿಂದ N ಓ ಕಡಿಮೆ ಇದನ್ನು ಅಸಾಧ್ಯ.
[ವಿದ್ಯಾರ್ಥಿ] ನೀವು ನಮಗೆ N ಓ ಇದನ್ನು ಸಾಮರ್ಥ್ಯವನ್ನು ಉದಾಹರಣೆಗೆ ತೋರಿಸಿದರು
ನೀವು ಮೆಮೊರಿ ಸಾಕಷ್ಟು ಬಳಸುತ್ತಿದ್ದರೆ. >> ಹೌದು.
ಮತ್ತು that's - ನಾನು that's ಎಂಬುದನ್ನು ಮರೆಯಬೇಡಿ - ಇದು ರೀತಿಯ ಎಣಿಸುವುದು?
ಹೌದು. ಒಂದು ಪೂರ್ಣಾಂಕ ಬೇರ್ಪಡಿಸುವ ಕ್ರಮಾವಳಿ.
ನಾನು ಕಳೆದ ವಾರ ನೆನಪಿರುವುದಿಲ್ಲ ಎಂದು ಈ ವಿಶೇಷ ಹೆಸರನ್ನು ಹುಡುಕುತ್ತಿರುತ್ತದೆ.
ಹೌದು. ಈ n ನ ದೊಡ್ಡ ಒ ವಸ್ತುಗಳನ್ನು ನಿರ್ವಹಿಸದಿದ್ದಲ್ಲಿ ಆ ರೀತಿಯ ವಿಧಗಳು.
ನೀವು ಕೇವಲ ಒಂದು ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ ಪೂರ್ಣಾಂಕಗಳ ಅಪ್ ಬಳಸಬಹುದು ಆದರೆ ಮಿತಿಗಳು ಇವೆ.
ಪ್ಲಸ್ ನೀವು ಏನಾದರೂ that's ವಿಂಗಡಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೆ -
ನಿಮ್ಮ ರಚನೆಯ 012, -12, 151, 4 ಮಿಲಿಯನ್ ವೇಳೆ
ನಂತರ ಒಂದೇ ಅಂಶ ಸಂಪೂರ್ಣವಾಗಿ ಸಂಪೂರ್ಣ ಬೇರ್ಪಡಿಸುವ ನಾಶಮಾಡಲು ಹೋಗುತ್ತದೆ.
>> ಪ್ರಶ್ನೆಗಳು?
[ವಿದ್ಯಾರ್ಥಿ] ನೀವು ಒಂದು ಪುನರಾವರ್ತಿತ ಫಂಕ್ಷನ್ ಮತ್ತು ಇದು ಕೇವಲ ಪುನರಾವರ್ತಿತ ಕರೆಗಳನ್ನು ಮಾಡುತ್ತದೆ ವೇಳೆ
ಒಂದು ವಾಪಸಾತಿಯ ಹೇಳಿಕೆಯನ್ನು ಒಳಗೆ, ಆ, ಬಾಲ ಪುನರಾವರ್ತಿತ ಇಲ್ಲಿದೆ
ಮತ್ತು ಆದ್ದರಿಂದ ರನ್ಟೈಮ್ ಸಮಯದಲ್ಲಿ ಹೆಚ್ಚು ಸ್ಮೃತಿಯನ್ನು ಬಳಸುತ್ತದೆ ಎಂದು
ಒಂದು ಪರಿಹಾರ ರೋಗ ಎಂದು ಅಥವಾ ಕನಿಷ್ಠ ಹೋಲಿಸಬಹುದಾದ ಸ್ಮರಣೆ ಬಳಸಬಹುದು?
[ಬೌಡೆನ್] ಹೌದು.
ಬಹುಶಃ ಸ್ವಲ್ಪ ನಿಧಾನ, ಆದರೆ ನಿಜವಾಗಲೂ. ಎಂದು
ಪುನರಾವರ್ತಿತ ಟೈಲ್ ಬಹಳ ಒಳ್ಳೆಯದು.
ಸ್ಟಾಕ್ ಚೌಕಟ್ಟುಗಳು ಮತ್ತೆ ನೋಡುತ್ತಿರುವುದು, ನಮಗೆ ಮುಖ್ಯ ಹೇಳುತ್ತಾರೆ
ಮತ್ತು ನಾವು ಇಂಟ್ ಬಾರ್ (ಇಂಟ್ X) ಅಥವಾ ಅಂಶವಿದೆ.
ಈ ಒಂದು ಪರಿಪೂರ್ಣ ಪುನರಾವರ್ತಿತ ಕಾರ್ಯ, ಆದರೆ ಪ್ರತಿಯಾಗಿ ಬಾರ್ (x - 1).
ಆದ್ದರಿಂದ ನಿಸ್ಸಂಶಯವಾಗಿ, ಈ ದೋಷಪೂರಿತ ಹೊಂದಿದೆ. ನೀವು ಬೇಸ್ ಸಂದರ್ಭಗಳಲ್ಲಿ ಮತ್ತು ವಿಷಯವನ್ನು ಅಗತ್ಯವಿದೆ.
ಆದರೆ ಇಲ್ಲಿ ಕಲ್ಪನೆಯು ಈ ಪುನರಾವರ್ತಿತ ಬಾಲ ಎಂದು
ಇದು ತನ್ನ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಪಡೆಯಲು ವಿಶೇಷವೇನು ಆಗ ಮುಖ್ಯ ಕರೆಗಳನ್ನು ಬಾರ್ ಅರ್ಥ.
ಈ ಸ್ಟಾಕ್ ಚೌಕಟ್ಟಿನಲ್ಲಿ ಮೆಮೊರಿ ಸ್ವಲ್ಪ ಬ್ಲಾಕ್ ಇರುವಂತೆ ವಿಶೇಷವೇನು
ತನ್ನ ವಾದವನ್ನು X ಅನುರೂಪವಾಗಿದೆ.
ಮತ್ತು ಆದ್ದರಿಂದ ನಾವು ಮುಖ್ಯ ಬಾರ್ (100) ಕಾಲ್ ಸಂಭವಿಸಿದರೆ ಹೇಳುತ್ತಾರೆ;
ಆದ್ದರಿಂದ X 100 ಪ್ರಾರಂಭಿಸಲು ಹೋಗುತ್ತದೆ.
ಕಂಪೈಲರ್ ಈ, ಒಂದು ಬಾಲ ಪುನರಾವರ್ತಿತ ಕಾರ್ಯ ಪರಿಗಣಿಸುತ್ತದೆ ವೇಳೆ
ಬಾರ್, ಅದರ ಪುನರಾವರ್ತಿತ ಕರೆಯು ಬಾರ್ಗೆ ಮಾಡುತ್ತದೆ ನಂತರ ಯಾವಾಗ
ಬದಲಿಗೆ ಸ್ಟಾಕ್ ಹೆಚ್ಚಾಗಿ ಬೆಳೆಯಲು ಶುರುಮಾಡಿದಳು ಅಲ್ಲಿ ಇದು ಒಂದು ಹೊಸ ಸ್ಟಾಕ್ ಫ್ರೇಮ್, ಮಾಡುವ,
ಅಂತಿಮವಾಗಿ ಇದು ರಾಶಿ ಒಳಗೆ ರನ್ ಮತ್ತು ನಂತರ ನೀವು segfaults ಪಡೆಯಿರಿ
ಮೆಮೊರಿ ಡಿಕ್ಕಿ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಏಕೆಂದರೆ.
>> ಬದಲಾಗಿ ತನ್ನ ಸ್ವಂತ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಮಾಡುವ ಹಾಗೆ, ಇದು ಬರಬಹುದು
ಹಾಯ್, ನಾನು, ಈ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಹಿಂತಿರುಗಬೇಕಾಗಿದೆ ಅವಶ್ಯಕತೆಯಿಲ್ಲ
ಆದ್ದರಿಂದ ಬದಲಿಗೆ ನಾನು 99 ಈ ವಾದವನ್ನು ಬದಲಾಗಿ ಮತ್ತು ನಂತರ ಬಾರ್ ಎಲ್ಲಾ ಪ್ರಾರಂಭಿಸಿ ಮಾಡುತ್ತೇವೆ.
, - (1 X) ಮತ್ತೊಮ್ಮೆ ಮಾಡುತ್ತಾನೆ ಮತ್ತು ರಿಟರ್ನ್ ಬಾರ್ ತಲುಪುತ್ತದೆ
ಅದರ ಬದಲು ಹೊಸ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಮಾಡುವ, ಇದು ಕೇವಲ 98 ಅದರ ಪ್ರಸ್ತುತ ವಾದವನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ
ಮತ್ತು ನಂತರ ಬಾರ್ ಅತ್ಯಂತ ಆರಂಭದಲ್ಲೇ ಮತ್ತೆ ಜಿಗಿಯುತ್ತಾರೆ.
ಆ ಕಾರ್ಯಾಚರಣೆಗಳು, ಸ್ಟಾಕ್ ಆ 1 ಮೌಲ್ಯವನ್ನು ಬದಲಿಸುವ ಮತ್ತು ಆರಂಭದಲ್ಲಿ ಮತ್ತೆ ಜಿಗಿಯುವುದು,
ಬಹಳ ಸಮರ್ಥವಾಗಿವೆ.
ಆದ್ದರಿಂದ ಕೇವಲ ಈ ರೋಗ ಒಂದು ಪ್ರತ್ಯೇಕ ಕಾರ್ಯ ಅದೇ ಸ್ಮರಣೆ ಬಳಕೆಯು
ನೀವು ಕೇವಲ 1 ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಬಳಸುತ್ತಿದ್ದೀರಿ, ಆದರೆ ನೀವು ಪರಿಣಾಮಗಳನ್ನು ಬಳಲುತ್ತಿರುವ ಆಗದೇ ಇರುವ ಕಾರಣ
ಕಾರ್ಯಗಳನ್ನು ಕರೆಯಲು ಹೊಂದುವ.
ಎಲ್ಲಾ ಈ ಸೆಟಪ್ ಮಾಡಲು ಏಕೆಂದರೆ ಕರೆ ಕಾರ್ಯಗಳನ್ನು ಸ್ವಲ್ಪ ದುಬಾರಿಯಾಗಬಹುದು
ಮತ್ತು teardown ಮತ್ತು ಎಲ್ಲಾ ಈ ಸ್ಟಫ್.
ಈ ಬಾಲದ ರಿಕರ್ಶನ್ ಒಳ್ಳೆಯದು.
[ವಿದ್ಯಾರ್ಥಿ] ಏಕೆ ಹೊಸ ಕ್ರಮಗಳನ್ನು ರಚಿಸಲು ಇಲ್ಲ?
ಇದು ಅರಿವಾಗುತ್ತದೆ ಏಕೆಂದರೆ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.
ಬಾರ್ ಗೆ ಕರೆ ಕೇವಲ ಪುನರಾವರ್ತಿತ ಕರೆಯು ಮರಳಲಿದ್ದಾರೆ.
ಆದ್ದರಿಂದ ಮರಳುವ ಮೌಲ್ಯವನ್ನು ಏನನ್ನೂ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.
ಅದು ತಕ್ಷಣವೇ ಮರಳಲು ವಿಶೇಷವೇನು.
ಆದ್ದರಿಂದ ಕೇವಲ ತನ್ನದೇ ವಾದವನ್ನು ಬದಲಾಯಿಸಲು ಮತ್ತು ಪ್ರಾರಂಭಿಸಲು ವಿಶೇಷವೇನು.
ಮತ್ತು, ನೀವು ಬಾಲ ಪುನರಾವರ್ತಿತ ಆವೃತ್ತಿ ಇಲ್ಲ ವೇಳೆ,
ನಂತರ ಈ ಬಾರ್ ಮರಳಿದಾಗ ಅಲ್ಲಿ ಎಲ್ಲಾ ಬಾರ್ಗಳು ಪಡೆಯಿರಿ
ಇದು ಬಾರ್ ತಕ್ಷಣವೇ ಹಿಂತಿರುಗಿಸುತ್ತದೆ ಎಂದು ನಂತರ, ಇದನ್ನು ತನ್ನ ಮೌಲ್ಯವನ್ನು ಮರಳಲು ಹೊಂದಿದೆ
ಮತ್ತು ಇದನ್ನು ತನ್ನ ಮೌಲ್ಯವನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ, ಅದು ಕೇವಲ ತಕ್ಷಣವೇ ಮರಳಲು ವಿಶೇಷವೇನು
ಮತ್ತು ಇದನ್ನು ತನ್ನ ಮೌಲ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸಬೇಕು.
ಆದ್ದರಿಂದ ನೀವು ಸ್ಟಾಕ್ ಈ ವಿಷಯಗಳನ್ನು ಎಲ್ಲಾ ಆಫ್ ಪಾಪಿಂಗ್ ಈ ಉಳಿಸುವ
ಮರಳುವ ಮೌಲ್ಯವನ್ನು ಕೇವಲ ಹೇಗಾದರೂ ಮತ್ತೆ ಎಲ್ಲಾ ರೀತಿಯಲ್ಲಿ ಅಪ್ ರವಾನಿಸಬಹುದು ಹೋಗುವ ಕಾರಣ.
ಆದ್ದರಿಂದ ಕೇವಲ ಅಪ್ಡೇಟ್ಗೊಳಿಸಲಾಗಿದೆ ವಾದವನ್ನು ನಮ್ಮ ವಾದವನ್ನು ಬದಲಾಯಿಸಲು ಮತ್ತು ಪ್ರಾರಂಭಿಸಿ ಇಲ್ಲ?
- ನಿಮ್ಮಂತಹ ಏನನ್ನಾದರೂ ವೇಳೆ ಫಂಕ್ಷನ್, ಬಾಲ ಪುನರಾವರ್ತಿತ ಇದ್ದರೆ
[ವಿದ್ಯಾರ್ಥಿ] ವೇಳೆ ಬಾರ್ (x + 1). >> ಹೌದು.
>> ನೀವು ಸ್ಥಿತಿಯಲ್ಲಿ ಪುಟ್ ಹಾಗಿದ್ದರೆ, ನೀವು ರಿಟರ್ನ್ ಮೌಲ್ಯದೊಂದಿಗೆ ಏನನ್ನೋ ಮಾಡುತ್ತಿರುವುದು.
ಅಥವಾ ನೀವು ರಿಟರ್ನ್ 2 ಕೂಡ * ಬಾರ್ (x - 1).
ಈಗ ಬಾರ್ - ಇದು 2 ಬಾರಿ ಮೌಲ್ಯವನ್ನು ಲೆಕ್ಕ ಮಾಡಲು (x 1), ಸಲುವಾಗಿ ಮರಳಲು ಅಗತ್ಯವಿದೆ
ಆದ್ದರಿಂದ ಈಗ, ತನ್ನದೇ ಆದ ಪ್ರತ್ಯೇಕ ಸ್ಟಾಕ್ ಫ್ರೇಮ್ ಬೇಕಿವೆ
ಈಗ, ನೀವು ಪ್ರಯತ್ನಿಸಿ ಹೇಗೆ ಹಾರ್ಡ್ ಯಾವುದೇ, ನೀವು ಅವಶ್ಯಕತೆ ಎಂದು ನೀನು -
ಈ ಪುನರಾವರ್ತಿತ ಬಾಲ ಅಲ್ಲ.
[ವಿದ್ಯಾರ್ಥಿ] ನಾನು ಬಾಲ ರಿಕರ್ಶನ್ ಉದ್ದೇಶವಿರುವ ಒಂದು ರಿಕರ್ಶನ್ ತರಲು ಪ್ರಯತ್ನಿಸಿ ಬಯಸುವಿರಾ -
[ಬೌಡೆನ್] ಮಾದರಿ ಪ್ರಪಂಚದಲ್ಲಿ, ಆದರೆ CS50 ರಲ್ಲಿ ನೀವು ಹೊಂದಿಲ್ಲ.
ಬಾಲ ರಿಕರ್ಶನ್ ಪಡೆಯುವ ಸಲುವಾಗಿ, ಸಾಮಾನ್ಯವಾಗಿ, ಒಂದು ಹೆಚ್ಚುವರಿ ವಾದವನ್ನು ಅಪ್ ಸೆಟ್
ಬಾರ್ y ಕೋಶದಲ್ಲಿ ಇಂಟ್ X ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಅಲ್ಲಿ
ಮತ್ತು ವೈ ನೀವು ಮರಳಿ ಬಯಸುವ ಅಂತಿಮ ವಿಷಯ ಸೂಚಿಸುತ್ತದೆ.
(- 1 x) 2 * ವೈ ಆದ್ದರಿಂದ ಇದು ಬಾರ್ ಮರಳುವುದಾಗಿ ಎಂದು ನೀನು.
ಜಸ್ಟ್ ಆದ್ದರಿಂದ ಒಂದು ಉನ್ನತ ಮಟ್ಟದ ನೀವು ವಿಷಯಗಳನ್ನು ಬಾಲ ಪುನರಾವರ್ತಿತ ಎಂದು ರೂಪಾಂತರ ಹೇಗೆ.
ಆದರೆ ಹೆಚ್ಚುವರಿ ವಾದ -
ಮತ್ತು ನಂತರ ಕೊನೆಯಲ್ಲಿ ನೀವು ನಿಮ್ಮ ಮೂಲ ಸಂದರ್ಭದಲ್ಲಿ ತಲುಪಿದಾಗ, ನೀವು ವೈ ಹಿಂತಿರುಗಿ
ನೀವು ಸಂಪೂರ್ಣ ಸಮಯವನ್ನು ನೀವು ಬಯಸುವ ಮರಳುವ ಮೌಲ್ಯವನ್ನು ಶೇಖರಿಸಲು ಮಾಡಿರುವ ಕಾರಣ.
ನಿಮಗೆ ರೀತಿಯ iteratively ಮಾಡುತ್ತಿದ್ದೆ ಆದರೆ ಪುನರಾವರ್ತಿತ ಕರೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಮಾಡಲಾಗಿದೆ.
ಪ್ರಶ್ನೆಗಳು?
ತಂತಿಗಳನ್ನು ಬಳಸುವಾಗ ರೀತಿಯ ಬಹುಶಃ ಪಾಯಿಂಟರ್ ಅಂಕಗಣಿತದ ಬಗ್ಗೆ [ವಿದ್ಯಾರ್ಥಿ]. >> ಖಂಡಿತ.
ಪಾಯಿಂಟರ್ arithmetic.
ತಂತಿಗಳನ್ನು ಚಾರ್ ನಕ್ಷತ್ರಗಳು ಏಕೆಂದರೆ ತಂತಿಗಳನ್ನು ಬಳಸಿ ಅದು, ಸುಲಭ
ಅಕ್ಷರಗಳು, ಶಾಶ್ವತವಾಗಿ ಮತ್ತು ಯಾವಾಗಲೂ ಒಂದು ಬೈಟ್ ಗಳು
ಮತ್ತು ಆದ್ದರಿಂದ ಪಾಯಿಂಟರ್ ಅಂಕಗಣಿತದ ನೀವು ತಂತಿಗಳನ್ನು ವ್ಯವಹರಿಸುವಾಗ ನೀವು ನಿಯಮಿತ ಅಂಕಗಣಿತದ ಸಮನಾಗಿರುತ್ತದೆ.
ಲೆಟ್ಸ್ ಕೇವಲ ಚಾರ್ * ರು = "ಹಲೋ" ಹೇಳುತ್ತಾರೆ.
ನಾವು ಮೆಮೊರಿ ಒಂದು ಬ್ಲಾಕ್ ಹೊಂದಿರುತ್ತವೆ.
ನೀವು ಯಾವಾಗಲೂ ಶೂನ್ಯ ಟರ್ಮಿನೇಟರ್ ಬೇಕಾಗುತ್ತದೆ ಇದು 6 ಬೈಟ್ಗಳು ಅಗತ್ಯವಿದೆ.
ಮತ್ತು ಚಾರ್ * ರು ಈ ರಚನೆಯ ಆರಂಭಕ್ಕೆ ತೋರಿಸಲು ಹೋಗುತ್ತದೆ.
ಆದ್ದರಿಂದ ರು ಅಲ್ಲಿ ಸೂಚಿಸುತ್ತಿದೆ.
ಈಗ, ಈ ಮೂಲಭೂತವಾಗಿ ಯಾವುದೇ ರಚನೆಯ ಕೆಲಸ ಹೇಗೆ
ಇರಲಿ ಅದು malloc ಮೂಲಕ ಅಥವಾ ಸ್ಟಾಕ್ ಆನ್ ಎಂಬುದನ್ನು ಒಂದು ರಿಟರ್ನ್ ಎಂಬ.
ಯಾವುದೇ ರಚನೆಯ ಮೂಲತಃ ರಚನೆಯ ಆರಂಭಕ್ಕೆ ಸೂಚಿಯಾಗಿದೆ
ತದನಂತರ ಯಾವುದೇ ರಚನೆಯ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಯಾವುದೇ ಅನುಕ್ರಮಣಿಕೆ, ಕೇವಲ ಒಂದು ನಿರ್ದಿಷ್ಟ ಆಫ್ಸೆಟ್ ಎಂದು ಶ್ರೇಣಿಯನ್ನು ಸಾಗುವ ಇದೆ.
>> ಹಾಗಾಗಿ ರು [3] ಸ್ವಲ್ಪ ಹೇಳಬೇಕಾದಾಗ; ಈ ರು ಹೋಗಿ ಮತ್ತು ಸೈನ್ 3 ಅಕ್ಷರಗಳನ್ನು ಎಣಿಸುವುದು
ಆದ್ದರಿಂದ ರು [3], ನಾವು 0 ಹೊಂದಿವೆ, 1, 2, 3, ಆದ್ದರಿಂದ ರು [3] ಈ L ಉಲ್ಲೇಖಿಸಲು ಹೋಗುತ್ತದೆ.
[ವಿದ್ಯಾರ್ಥಿ] ನಾವು ರು + 3 ಮಾಡುವ ಮತ್ತು ನಂತರ ಆವರಣ ನಕ್ಷತ್ರ ಅದೇ ಮೌಲ್ಯವನ್ನು ತಲುಪಲು ಸಾಧ್ಯವಾಯಿತು?
ಹೌದು.
ಈ * (ರು + 3) ಗೆ ಸಮನಾಗಿದೆ;
ಮತ್ತು ಶಾಶ್ವತವಾಗಿ ಮತ್ತು ಯಾವಾಗಲೂ ಸಮಾನ ನೀವು ಏನೇ ಹೊಂದಿದೆ.
ನೀವು ಬ್ರಾಕೆಟ್ ಸಿಂಟಾಕ್ಸನ್ನು ಬಳಸುತ್ತದೆ ಅವಶ್ಯಕತೆಯಿಲ್ಲ.
ನೀವು ಯಾವಾಗಲೂ (ರು + 3) ವಾಕ್ಯ * ಬಳಸಬಹುದು.
ಜನರು ಆದರೂ, ಬ್ರಾಕೆಟ್ ವಾಕ್ಯ ಇಷ್ಟಪಡುವ ಪ್ರವೃತ್ತಿ ಹೊಂದಿರುತ್ತಾರೆ.
[ವಿದ್ಯಾರ್ಥಿ] ಆದ್ದರಿಂದ ಎಲ್ಲಾ ಸಾಲುಗಳು ಕೇವಲ ವಾಸ್ತವವಾಗಿ ಪಾಯಿಂಟರ್ಸ್ ಇವೆ.
ನಾನು ಹೇಳಲು ಒಂದು ಸ್ವಲ್ಪ ಭೇದಗಳಿವೆ ಇಂಟ್ X [4]; >> [ವಿದ್ಯಾರ್ಥಿ] ಎಂದು ಮೆಮೊರಿ ರಚಿಸಲು ಡಸ್?
[ಬೌಡೆನ್] ಆದರೆ ಅದು 16 ಬೈಟ್ಗಳು ಒಟ್ಟಾರೆ, ಸ್ಟಾಕ್ ಮೇಲೆ 4 ints ಸೃಷ್ಟಿಸುವ ಸಾಧ್ಯತೆಯಿದೆ.
ಇದು ಸ್ಟಾಕ್ ಮೇಲೆ 16 ಬೈಟ್ಗಳು ರಚಿಸಲು ವಿಶೇಷವೇನು.
X ಎಲ್ಲಿಯಾದರೂ ಸಂಗ್ರಹಿಸಲು ಆಗುವುದಿಲ್ಲ.
ಇದು ಕೇವಲ ವಿಷಯ ಆರಂಭಕ್ಕೆ ಉಲ್ಲೇಖಿಸುವಾಗ ಸಂಕೇತವಾಗಿದೆ.
ನೀವು, ಈ ಕಾರ್ಯದ ಒಳಗೆ ಸರಣಿ ಘೋಷಿಸಿತು ಕಾರಣ
ಕಂಪೈಲರ್ ಮಾಡಲು ಏನಾಗುತ್ತಿದೆ ಕೇವಲ ವ್ಯತ್ಯಯ X ಎಲ್ಲಾ ಸಂದರ್ಭಗಳಲ್ಲಿ ಬದಲಾಯಿಸಲು ಇದೆ
ಈ 16 ಬೈಟ್ಗಳು ಹಾಕಲು ಆಯ್ಕೆ ಏನಾಯಿತು ಅಲ್ಲಿ ಜೊತೆ.
ರು ನಿಜವಾದ ಪಾಯಿಂಟರ್ ಏಕೆಂದರೆ ಇದು ಚಾರ್ * ರು ಆ ಸಾಧ್ಯವಿಲ್ಲ.
ಇದು ಇತರ ವಸ್ತುಗಳ ತೋರಿಸಲು ಉಚಿತ.
x ಒಂದು ಸ್ಥಿರವಾಗಿರುತ್ತದೆ. ನೀವು ಬೇರೆ ರಚನೆಯ ಅದನ್ನು ಅಂಶಗಳಿಲ್ಲ ಸಾಧ್ಯವಿಲ್ಲ. >> [ವಿದ್ಯಾರ್ಥಿ] ಸರಿ.
ಆದರೆ ಈ ಕಲ್ಪನೆ, ಈ ಅನುಕ್ರಮಣಿಕೆ, ಇದು ಒಂದು ಸಾಂಪ್ರದಾಯಿಕ ರಚನೆಯ ಅವರ ಎಂಬುದನ್ನು ಲೆಕ್ಕಿಸದೆ ಒಂದೇ
ಅದು ಏನೋ ಅಥವಾ ಒಂದು ಪಾಯಿಂಟರ್ ಇದ್ದರೆ ಅಥವಾ ಒಂದು malloced ರಚನೆಯ ಒಂದು ಪಾಯಿಂಟರ್ ಇಲ್ಲಿದೆ.
ಮತ್ತು ವಾಸ್ತವವಾಗಿ, ಇದು ಒಂದೇ ಎಂದು ಎಷ್ಟು ಸಮನಾಗಿರುತ್ತದೆ.
ವಾಸ್ತವವಾಗಿ ಕೇವಲ ಬ್ರಾಕೆಟ್ಗಳನ್ನು ಒಳಗೆ ಎಂಬುದನ್ನು ಅನುವಾದಿಸಲಾಗುತ್ತದೆ ಮತ್ತು, ಬ್ರಾಕೆಟ್ಗಳನ್ನು ನ ಎಡಭಾಗದ
ಅವುಗಳನ್ನು ಒಟ್ಟಿಗೆ ಸೇರಿಸುತ್ತದೆ, ಮತ್ತು dereferences.
ಆದ್ದರಿಂದ ಈ ರೀತಿಯಲ್ಲಿ ಮಾನ್ಯವಾಗಿಲ್ಲ * (ರು + 3) ಅಥವಾ ರು [3].
[ವಿದ್ಯಾರ್ಥಿ] ನೀವು 2 ಆಯಾಮದ ಸರಣಿಗಳ ತೋರುಗಡ್ಡಿ ಪಾಯಿಂಟರ್ಸ್ ಸಾಧ್ಯವುಂಟೆ?
>> ಇದು ಕಷ್ಟ. ಸಾಂಪ್ರದಾಯಿಕವಾಗಿ, ಯಾವುದೇ.
ಎ 2 ಆಯಾಮದ ರಚನೆಯ ಕೆಲವು ಅನುಕೂಲಕರ ಸಿಂಟಾಕ್ಸಿನೊಂದಿಗೆ ಒಂದು 1 ಆಯಾಮದ ರಚನೆ
ಏಕೆಂದರೆ ನಾನು ಹೇಳುವ ಸಂದರ್ಭದಲ್ಲಿ ಇಂಟ್ X [3] [3], ಈ ನಿಜವಾಗಿಯೂ 9 ಮೌಲ್ಯಗಳು ಕೇವಲ 1 ರಚನೆ.
ಮತ್ತು ಆದ್ದರಿಂದ ನಾನು ಸೂಚ್ಯಂಕ, ಕಂಪೈಲರ್ ವಾಟ್ ಐ ಮೀನ್ ತಿಳಿದಿರುವ ಸಂದರ್ಭದಲ್ಲಿ.
ನಾನು X [1] [2], ನಾನು ಎರಡನೇ ಸಾಲು ಹೋಗಲು ಬಯಸುವ ತಿಳಿದಿದೆ ಆದ್ದರಿಂದ ಮೊದಲ 3 ಬಿಡಲು ವಿಶೇಷವೇನು, ಹೇಳಲು ವೇಳೆ
ನಂತರ ಅದನ್ನು, ಆದ್ದರಿಂದ ಈ ಒಂದು ಪಡೆಯಲು ವಿಶೇಷವೇನು ಎಂದು ಎರಡನೆಯ ವಿಷಯ ಬಯಸಿದೆ.
ಆದರೆ ಇನ್ನೂ ಕೇವಲ ಒಂದು ಆಯಾಮದ ರಚನೆ.
ಮತ್ತು ಆದ್ದರಿಂದ ನಾನು ಆ ಗುಂಪಿಗೆ ಒಂದು ಪಾಯಿಂಟರ್ ನಿಯೋಜಿಸಲು ಬಯಸಿದರೆ
ನಾನು ಹೇಳಬಹುದು ಇಂಟ್ * ಪು = X;
X ರೀತಿಯ ಕೇವಲ ಹೊಂದಿದೆ -
ಇದು ಕೇವಲ ಒಂದು ಸಂಕೇತವಾಗಿದೆ ಇದು x ನ ಒರಟು ಹೇಳುವ ಪ್ರಕಾರ ಮತ್ತು ಇದು ನೈಜ ವೇರಿಯಬಲ್ ಅಲ್ಲ
ಆದರೆ ಇದು ಕೇವಲ ಒಂದು ಇಂಟ್ * ಹೊಂದಿದೆ.
X ಈ ಆರಂಭಕ್ಕೆ ಸೂಚಿಯಾಗಿದೆ. >> [ವಿದ್ಯಾರ್ಥಿ] ಸರಿ.
ಮತ್ತು ಆದ್ದರಿಂದ ನಾನು [1] [2] ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.
ನಾನು, ವಿಶೇಷ ವಾಕ್ಯ ಒಂದು ಪಾಯಿಂಟರ್ ಸಾರುವ ಇಲ್ಲ ಎಂದು
ಇಂಟ್ ನಂತಹ ಹಾಸ್ಯಾಸ್ಪದ ಏನಾದರೂ (* ಪು [-. ಸಂಪೂರ್ಣವಾಗಿ ಹಾಸ್ಯಾಸ್ಪದ ಏನೋ ನಾನು ಗೊತ್ತಿಲ್ಲ.
ಆದರೆ ಆವರಣ ಮತ್ತು ವಸ್ತುಗಳ ಹಾಗೆ ಪಾಯಿಂಟರ್ಸ್ ಸಾರುವ ವಾಕ್ಯ ಇಲ್ಲ.
ಇದು ನೀವು ಹಾಗೆ ಅವಕಾಶ ಇರಬಹುದು.
ನಾನು ಸತ್ಯ ಹೇಳುವ ಏನಾದರೂ ಹಿಂತಿರುಗಿ ನೋಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.
ಅಂಕ ವಾಕ್ಯ ಇದ್ದರೆ ನಾನು, ನಂತರ ಅದನ್ನು ನೋಡುತ್ತೇವೆ. ಆದರೆ ನೀವು ಎಂದಿಗೂ ವೀಕ್ಷಿಸುವುದಿಲ್ಲ.
ಮತ್ತು ವಾಕ್ಯ ನೀವು ಬಳಸುತ್ತಿದ್ದರೆ, ಜನರು ಭಗ್ನಗೊಂಡ ಎಂದು ಆದ್ದರಿಂದ ಪ್ರಾಚೀನವಾಗಿದೆ.
ಇದು ಮಾಹಿತಿ ಬಹುಆಯಾಮದ ಸಾಲುಗಳು ಬಹಳ ಅಪರೂಪ.
ಅತ್ಯಧಿಕವಾಗಿ ನೀವು -
ನೀವು ಮ್ಯಾಟ್ರಿಕ್ಸ್ ವಿಷಯಗಳನ್ನು ಮಾಡುತ್ತಿರುವುದು ವೇಳೆ ಅಲ್ಲದೇ, ಇದು ಅಪರೂಪದ ಎಂದು ಹಿಂದಿರುಗಬಹುದೆಂದು
ಆದರೆ ಸಿ ನೀವು ವಿರಳವಾಗಿ ಮಲ್ಟಿಡೈಮೆನ್ಷನಲ್ ಸರಣಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಎಂದು ನೀನು.
ಹೌದು. >> [ವಿದ್ಯಾರ್ಥಿ] ಲೆಟ್ಸ್ ನೀವು ನಿಜವಾಗಿಯೂ ಬಹಳ ಸರಣಿ ಹೇಳುತ್ತಾರೆ.
>> ಆದ್ದರಿಂದ ವಾಸ್ತವ ಮೆಮೊರಿಯನ್ನು ಇದು, ಎಲ್ಲಾ ಸತತ ಎಂದು ಕಾಣುತ್ತದೆ
ಪರಸ್ಪರ ಹಕ್ಕನ್ನು ಮುಂದಿನ ಅಂಶಗಳನ್ನು,
ಆದರೆ ದೈಹಿಕ ನೆನಪಿಗಾಗಿ, ಅದನ್ನು ಬೇರ್ಪಡಿಸಲು ಮಾಡುವ ಸಾಧ್ಯವಾಗುತ್ತದೆ ಎಂದು? >> ಹೌದು.
ಮೆಮೊರಿ ಕೃತಿಗಳು ಎಷ್ಟು ವಾಸ್ತವ ಇದು ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ -
ಹಂಚಿಕೆ ಘಟಕ 4 ಕಿಲೋಬೈಟ್ಗಳಷ್ಟಿರುತ್ತದೆ ನೀಡುತ್ತದೆ ಒಂದು ಪುಟ, ಆಗಿದೆ
ಮತ್ತು ಆದ್ದರಿಂದ ಒಂದು ಪ್ರಕ್ರಿಯೆ ಎಂದು ಹೇಳಿದಾಗ, ಹೇ, ನಾನು, ಈ ಮೆಮೊರಿ ಬಳಸಲು ಬಯಸುವ
ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆಯು ಮೆಮೊರಿ ಆ ಚಿಕ್ಕ ಬ್ಲಾಕ್ 4 ಕಿಲೋಬೈಟ್ಗಳಷ್ಟು ನಿಯೋಜಿಸಿ ಹೋಗುವ ಇದೆ.
ನೀವು ಮಾತ್ರ ಸ್ಮರಣೆ ಸಂಪೂರ್ಣ ಬ್ಲಾಕ್ ಒಂದು ಸ್ವಲ್ಪ ಬೈಟ್, ಬಳಸಲು ಸಹ
ಕಾರ್ಯವ್ಯವಸ್ಥೆಯನ್ನು ಪೂರ್ಣ 4 ಕಿಲೋಬೈಟ್ಗಳಷ್ಟು ನೀಡಲು ಹೋಗುತ್ತದೆ.
ಆದ್ದರಿಂದ ಇದರರ್ಥ ಏನು ನಾನು ತೋರಿಸಬಹುದಿತ್ತು - ಈ ನನ್ನ ಸ್ಟಾಕ್ ಹೇಳುತ್ತಾರೆ ತಂದೆಯ ಅವಕಾಶ.
ಈ ಸಂಗ್ರಹವು ಬೇರ್ಪಡಿಸಬಹುದಾಗಿದೆ. ನನ್ನ ಸ್ಟಾಕ್ ಮೆಗಾಬೈಟ್ ಮತ್ತು ಮೆಗಾಬೈಟ್ ಆಗಿರಬಹುದು.
ನನ್ನ ಸ್ಟ್ಯಾಕ್ ಬೃಹತ್ ಆಗಿರಬಹುದು.
ಆದರೆ ಸ್ಟಾಕ್ ಸ್ವತಃ ಪ್ರತ್ಯೇಕ ಪುಟಗಳು ವಿಭಜಿಸಲಾಗಿತ್ತು ಮಾಡಬೇಕು
ಈ ನಮ್ಮ RAM ಹೇಳುತ್ತಾರೆ ನಾವು ಇಲ್ಲಿ ಮೇಲೆ ನೋಡಿದರೆ ಇದು ಈಗ,
ನಾನು RAM ನ 2 ಗಿಗಾಬೈಟ್ ಹೊಂದಿದ್ದರೆ, ಈ ನನ್ನ RAM ನ ಸೊನ್ನೆಯ ಬೈಟ್ ರೀತಿಯ ನಿಜವಾದ ವಿಳಾಸಕ್ಕೆ 0
ಮತ್ತು ಈ ಇಲ್ಲಿ 2 ಗಿಗಾಬೈಟ್ ಎಲ್ಲಾ ವೇ ಡೌನ್ ಆಗಿದೆ.
ಆದ್ದರಿಂದ ಈ ಪುಟ ಇಲ್ಲಿ ಈ ಬ್ಲಾಕ್ ಸಂಬಂಧಿಸದ ಇರಬಹುದು.
ಈ ಪುಟವನ್ನು ಇಲ್ಲಿ ಈ ಬ್ಲಾಕ್ ಸಂಬಂಧಿಸದ ಇರಬಹುದು.
ಇದನ್ನು ಇಲ್ಲಿ ಈ ಒಂದು ಸಂಬಂಧಿಸದ ಇರಬಹುದು.
ಕಾರ್ಯಾಚರಣಾ ವ್ಯವಸ್ಥೆಯ ಭೌತಿಕ ಮೆಮೊರಿಯನ್ನು ನಿಯೋಜಿಸಲು ಉಚಿತ ಆದ್ದರಿಂದ
ಕ್ರಮವಿಲ್ಲದ ಯಾವುದೇ ಪ್ರತ್ಯೇಕ ಪುಟಕ್ಕೆ.
ಮತ್ತು ಅರ್ಥ ಈ ಗಡಿ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಸವಾರಿಗೊಳಿಸುವ ಉಂಟಾದರೆ,
ಒಂದು ಶ್ರೇಣಿಯನ್ನು, ಈ ಬಿಡಲಾಗುವುದು ಸಂಭವಿಸಿದರೆ ಮತ್ತು ಬಲ ಪುಟದ ಈ ಕ್ರಮದಲ್ಲಿ
ಆ ಸರಣಿ ಭೌತಿಕ ಮೆಮೊರಿಯನ್ನು ಭಾಗವಾಗುವಂತೆ ಹೋಗುವ ಇದೆ.
ಪ್ರಕ್ರಿಯೆ ಮುಗಿದಾಗ ತದನಂತರ ನೀವು ಪ್ರೋಗ್ರಾಂ ಮುಚ್ಚಿದಾಗ,
ಈ ಮ್ಯಾಪಿಂಗುಗಳನ್ನು ಅಳಿಸಿಹಾಕಿತು ಪಡೆಯಲು ಮತ್ತು ನಂತರ ಇತರ ವಿಷಯಗಳಿಗೆ ಈ ಕಡಿಮೆ ಬ್ಲಾಕ್ಗಳನ್ನು ಬಳಸಲು ಉಚಿತ.
ಹೆಚ್ಚು ಪ್ರಶ್ನೆಗಳು?
[ವಿದ್ಯಾರ್ಥಿ] ಪಾಯಿಂಟರ್ ಅಂಕಗಣಿತದ. >> ಹೌದು.
ತಂತಿಗಳು, ಸುಲಭ, ಆದರೆ ints ಸ್ವಲ್ಪ ನೋಡಿ
ಆದ್ದರಿಂದ ಹಿಂದಕ್ಕೆ ಇಂಟ್ X [4];
ಈ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ಎಂದು ಅಥವಾ 4 ಪೂರ್ಣಾಂಕಗಳ ಒಂದು malloced ರಚನೆಯ ಒಂದು ಪಾಯಿಂಟರ್ ಆಗಿರುತ್ತದೆ,
ಅದೇ ರೀತಿಯಲ್ಲಿ ಚಿಕಿತ್ಸೆ ಹೋಗುವುದಿಲ್ಲ.
ಆದ್ದರಿಂದ ಸರಣಿಗಳ ರಾಶಿ ಮೇಲೆ [ವಿದ್ಯಾರ್ಥಿ] ಇವೆ?
[ಬೌಡೆನ್] ಅರೆಸ್ ರಾಶಿ ಮೇಲೆ ಅಲ್ಲ. >> [ವಿದ್ಯಾರ್ಥಿ] ಓಹ್.
>> [ಬೌಡೆನ್] ರಚನೆಯ ಈ ರೀತಿಯ ಸ್ಟ್ಯಾಕ್ ಮೇಲೆ ಒಲವು
ನೀವು ಇದನ್ನು ಡಿಕ್ಲೇರ್ಡ್ - ಜಾಗತಿಕ ಅಸ್ಥಿರ ನಿರ್ಲಕ್ಷಿಸಿ. ಜಾಗತಿಕ ಅಸ್ಥಿರ ಬಳಸಬೇಡಿ.
ನಾನು ಹೇಳಲು ಕಾರ್ಯದ ಒಳಗೆ ಇಂಟ್ X [4];
ಈ ಶ್ರೇಣಿಗೆ ಸ್ಟಾಕ್ ಮೇಲೆ 4 ಪೂರ್ಣಾಂಕ ಬ್ಲಾಕ್ ರಚಿಸಲು ವಿಶೇಷವೇನು.
ಆದರೆ ಈ malloc (4 * sizeof (ಇಂಟ್)); ರಾಶಿ ಮೇಲೆ ಹೋಗುತ್ತಿದ್ದೇವೆ ಇದೆ.
ಆದರೆ ಈ ಹಂತದ ನಂತರ ನಾನು, ಅತ್ಯಧಿಕವಾಗಿ ಅದೇ ರೀತಿಯಲ್ಲಿ X ಮತ್ತು ಪು ಬಳಸಬಹುದು
ನೀವು ಪು ಮತ್ತೆ ಹಾಕಲು ಸಾಧ್ಯವಿಲ್ಲ ಬಗ್ಗೆ ಮೊದಲು ನಾನು ಹೇಳಿದರು ವಿನಾಯಿತಿಗಳನ್ನು ಬೇರೆ.
ತಾಂತ್ರಿಕವಾಗಿ, ಅವುಗಳ ಗಾತ್ರವನ್ನೂ ಸ್ವಲ್ಪಮಟ್ಟಿಗೆ ಭಿನ್ನವಾಗಿದೆ, ಆದರೆ ಸಂಪೂರ್ಣವಾಗಿ ಅಸಂಬದ್ಧ ಇಲ್ಲಿದೆ.
ನೀವು ವಾಸ್ತವವಾಗಿ ಅವುಗಳ ಗಾತ್ರಗಳನ್ನು ಬಳಸಲು ಎಂದಿಗೂ.
ನಾನು ಹೇಳಬಹುದು ಪು ಪು [3] = 2; ಅಥವಾ X [3] = 2;
ನೀವು ನಿಖರವಾಗಿ ಅದೇ ರೀತಿಯಲ್ಲಿ ಅವುಗಳ ಬಳಸಬಹುದು.
ಈಗ ಹಾಗೆ ಪಾಯಿಂಟರ್ ಅಂಕಗಣಿತದ - ಹೌದು.
[ವಿದ್ಯಾರ್ಥಿ] ನೀವು ಬ್ರಾಕೆಟ್ಗಳನ್ನು ಹೊಂದಿದ್ದರೆ ಪುಟ * ಮಾಡಲು ಇಲ್ಲ?
ಆವರಣಗಳಲ್ಲಿ ಒಂದು ಸೂಚ್ಯ dereference ಇವೆ. ಸರಿ >>.
ವಾಸ್ತವವಾಗಿ, ಕೂಡಾ ನಿಮ್ಮೊಂದಿಗೆ ಹೇಳುತ್ತಿದ್ದಾರೆಂಬುದನ್ನು ನೀವು ಮಲ್ಟಿಡೈಮೆನ್ಷನಲ್ ಸರಣಿಗಳ ಪಡೆಯುವುದು
ಪಾಯಿಂಟರ್ಸ್ ಜೊತೆಗೆ, ನೀವು ಏನು ಮಾಡಬಹುದು ಹೇಳುತ್ತಾರೆ ತಿಳಿಸಿ, ಏನೋ ಹಾಗೆ ಇದೆ, ಇಂಟ್ ** ಪುಟಗಳು = malloc (sizeof (ಇಂಟ್ *) * 5);
ನಾನು ಅದನ್ನು ಆಲ್ ಔಟ್ ಮೊದಲ ಬರೆಯಲು ಮಾಡುತ್ತೇವೆ.
ನಾನು ಒಂದು ಬಯಸಲಿಲ್ಲ.
ಸರಿ.
ನಾನು ಇಲ್ಲಿ ಏನು ಆಗಿದೆ - ಆ ಪುಟಗಳು [I] ಆಗಿರಬೇಕು.
ಆದ್ದರಿಂದ ಪುಟಗಳು ಒಂದು ಪಾಯಿಂಟರ್ಗೆ ಸೂಚಿಯಾಗಿದೆ.
ನೀವು 5 ಇಂಟ್ ತಾರೆಗಳ ಗುಂಪಿಗೆ ತೋರಿಸಲು ಪುಟಗಳು mallocing ಮಾಡುತ್ತಿದ್ದೇವೆ.
ಆದ್ದರಿಂದ ನೆನಪಿಗಾಗಿ ನೀವು ಸ್ಟಾಕ್ ಪುಟಗಳು ಮೇಲೆ
ಎಲ್ಲಾ ಪಾಯಿಂಟರ್ಸ್ ಸ್ವತಃ ಇದು 5 ಘಟಕಗಳ ಗುಂಪಿಗೆ ತೋರಿಸಲು ವಿಶೇಷವೇನು.
ಮತ್ತು ನಂತರದಲ್ಲಿ ಇಲ್ಲಿ ನಾನು malloc ಕೆಳಗೆ, ನಾನು malloc ಆ ಮಾಲಿಕ ಪಾಯಿಂಟರ್ಗಳ ಪ್ರತಿ
ರಾಶಿ ಮೇಲೆ 4 ಬೈಟ್ಗಳು ಪ್ರತ್ಯೇಕ ಬ್ಲಾಕ್ಗೆ ಗುರಿಮಾಡಿ ಮಾಡಬೇಕು.
4 ಬೈಟುಗಳಿಗೆ ಈ ಅಂಕಗಳನ್ನು.
ಮತ್ತು ಬೇರೆ 4 ಬೈಟ್ಗಳು ಈ ಒಂದು ಅಂಕ.
>> ಮತ್ತು ಅವರನ್ನು ಎಲ್ಲಾ ತಮ್ಮ 4 ಬೈಟ್ಗಳು ಸೂಚಿಸಿದವು.
ಇದು ನನಗೆ ಬಹು ಆಯಾಮಗಳ ವಸ್ತುಗಳನ್ನು ಮಾಡುವ ರೀತಿಯಲ್ಲಿ ನೀಡುತ್ತದೆ.
ನಾನು ಪುಟಗಳು [3] [4], ಆದರೆ ಈಗ ಈ ಒಂದೇ ಆಗಿದೆ ಮಲ್ಟಿಡೈಮೆನ್ಷನಲ್ ಸರಣಿಗಳ ಹೇಳಬಹುದು
ಬಹುಆಯಾಮದ ಸಾಲುಗಳು ಇದನ್ನು ಅನುವಾದ ಏಕೆಂದರೆ [3] [4] X ರಚನೆಯ ಒಳಗೆ ಆಫ್ಸೆಟ್ ಒಂದೇ ಆಗಿ.
ಈ dereferences ಪು, dereferences ನಂತರ, ಮೂರನೇ ಸೂಚ್ಯಂಕ ಬಳಸುವ
ಮತ್ತು ಪ್ರವೇಶಗಳಿಗೆ - 4 ಅಮಾನ್ಯವಾಗಿದೆ ಎಂದು - ಎರಡನೇ ಸೂಚ್ಯಂಕ.
ಆದರೆ ನಾವು ಪಡೆದರು ಇಂಟ್ X [3] [4] ಬಹು ಆಯಾಮದ ರಚನೆಯ ಮಾಹಿತಿ ಮೊದಲು
ಮತ್ತು ನೀವು ಬ್ರಾಕೆಟ್ ಡಬಲ್ ಅದು, ನಿಜವಾಗಿಯೂ ಒಂದೇ dereference ಇಲ್ಲಿದೆ
, ನೀವು ಒಂದು ಪಾಯಿಂಟರ್ ಅನುಸರಿಸುತ್ತಿರುವ ಮತ್ತು ನಂತರ ಆಫ್ಸೆಟ್
ಈ ನಿಜವಾಗಿಯೂ 2D ಉಲ್ಲೇಖಗಳನ್ನು ಹೊಂದಿದೆ.
ನೀವು 2 ಪ್ರತ್ಯೇಕ ಪಾಯಿಂಟರ್ಸ್ ಅನುಸರಿಸಿ.
ಇದು ತಾಂತ್ರಿಕವಾಗಿ ಅನುಮತಿಸುತ್ತದೆ ಆದ್ದರಿಂದ ನೀವು ಮಲ್ಟಿಡೈಮೆನ್ಷನಲ್ ವ್ಯೂಹಗಳನ್ನು ಹೊಂದಿರುವ
ಪ್ರತಿಯೊಂದು ರಚನೆಯ ವಿವಿಧ ಗಾತ್ರಗಳ ಅಲ್ಲಿ.
ಹಾಗಾಗಿ ಹರಿತವಾಗಿದೆ ಮಲ್ಟಿಡೈಮೆನ್ಷನಲ್ ಸಾಲುಗಳು ಇದನ್ನು ಏನನ್ನು ಎಂದು
ನಿಜವಾಗಿಯೂ ಮೊದಲನೆಯದಾಗಿ 10 ಅಂಶಗಳನ್ನು ಹೊಂದಿರುವ ಏನೋ ಸೂಚಿಸಲಿರಬಹುದು ರಿಂದ
ಎರಡನೆಯ ವಿಷಯ 100 ಅಂಶಗಳನ್ನು ಹೊಂದಿರುವ ಏನೋ ಸೂಚಿಸಲಿರಬಹುದು.
[ವಿದ್ಯಾರ್ಥಿ] ನೀವು ಮಾಡಬಹುದು ಪಾಯಿಂಟರ್ಸ್ ಸಂಖ್ಯೆಗೆ ಯಾವುದೇ ಮಿತಿಯಿಲ್ಲ
ಇತರ ಪಾಯಿಂಟರ್ಸ್ ತೋರುತ್ತಿರುವಂತೆ? >> ನಂ
ನೀವು ಇಂಟ್ ***** ಪುಟ ಹೊಂದಬಹುದು.
ಬ್ಯಾಕ್ ಪಾಯಿಂಟರ್ ಅಂಕಗಣಿತದ ಗೆ - >> [ವಿದ್ಯಾರ್ಥಿ] ಓಹ್. >> ಹೌದು.
[ವಿದ್ಯಾರ್ಥಿ] ನಾನು ಇಂಟ್ *** ಪು ಮತ್ತು ವೇಳೆ ನಾನು dereferencing ಮಾಡಲು ಮತ್ತು ನಾನು ಪು * ಈ ಮೌಲ್ಯ ಎಂದು ಹೇಳಬಹುದು,
ಕೇವಲ dereferencing 1 ಮಟ್ಟದ ಮಾಡಲು ಹೋಗುತ್ತದೆ? >> ಹೌದು.
- ಕಳೆದ ಪಾಯಿಂಟರ್ ನಲ್ಲಿ ತೋರುಗಡ್ಡಿ ನಿಗದಿಪಡಿಸಲಾಗಿದೆ ವಿಷಯ ಪ್ರವೇಶಿಸಲು ಬಯಸುವ ಹಾಗಿದ್ದಲ್ಲಿ
ನಂತರ ನೀವು *** ಪುಟ ಮಾಡಲು. ಸರಿ >>.
ಆದ್ದರಿಂದ ಈ 1 ಬ್ಲಾಕ್, ಮತ್ತೊಂದು ಬ್ಲಾಕ್ಗೆ ಅಂಕಗಳನ್ನು, ಮತ್ತೊಂದು ಬ್ಲಾಕ್ಗೆ ಅಂಕಗಳ ಪುಟ ಅಂಕಗಳು.
ನೀವು * ಹೋದರೆ ನಂತರ ಪು = ಯಾವುದೋ, ನಂತರ ನೀವು ಈ ಬದಲಾಗುತ್ತಿದೆ
ಈಗ ಬೇರೆ ಬ್ಲಾಕ್ ತೋರಿಸಲು. ಸರಿ >>.
>> ಈ malloced ವೇಳೆ [ಬೌಡೆನ್] ಮತ್ತು, ನಂತರ ನೀವು ಈಗ ಮೆಮೊರಿ ಸೋರಿಹೋಗಿದೆ
ಈ ವಿವಿಧ ಉಲ್ಲೇಖವಿದೆ ಸಂಭವಿಸಬಹುದು ಹೊರತು
ನೀವು ಕೇವಲ ದೂರ ಎಸೆದಿದ್ದರು ಎಂಬ ದೋಸ್ ಒನ್ಸ್ ಮರಳಿ ಪಡೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ ರಿಂದ.
ಪಾಯಿಂಟರ್ arithmetic.
ಇಂಟ್ X [4]; 4 ಪೂರ್ಣಾಂಕಗಳ ಒಂದು ಶ್ರೇಣಿಯನ್ನು ನಿಯೋಜಿಸಿ ಹಾಕುತ್ತದೆ
X ರಚನೆಯ ಆರಂಭಕ್ಕೆ ತೋರಿಸಲು ಹೋಗಿ ಅಲ್ಲಿ.
ಆದ್ದರಿಂದ ನಾನು X [1] ಸ್ವಲ್ಪ ಹೇಳಿ; ನಾನು ರಚನೆಯ ಎರಡನೆಯ ಪೂರ್ಣಾಂಕ ಹೋಗಿ ಅರ್ಥ ಬಯಸುವ,
ಇದು ಒಂದು ಎಂದು.
ಈ ಪೂರ್ಣಾಂಕ 4 ಬೈಟ್ಗಳು ಅಪ್ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಆದರೆ ನಿಜವಾಗಿಯೂ, ಆ ರಚನೆಯ ಒಳಗೆ 4 ಬೈಟ್ಗಳು ಇಲ್ಲಿದೆ.
1 ಆಫ್ಸೆಟ್ ಒಂದು ನಿಜವಾಗಿಯೂ ಒಂದು 1 ಆಫ್ಸೆಟ್ ಅರ್ಥ ಆದ್ದರಿಂದ
ರಚನೆಯ ರೀತಿಯ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಗಾತ್ರ.
ಈ ಪೂರ್ಣಾಂಕಗಳ ಒಂದು ಶ್ರೇಣಿಯನ್ನು, ಆದ್ದರಿಂದ ಆಫ್ಸೆಟ್ ಬಯಸಿದೆ ಅದು ಇಂಟ್ 1 ಬಾರಿ ಗಾತ್ರದ ಮಾಡಲು ತಿಳಿದಿದೆ.
ಇತರೆ ವಾಕ್ಯ. ಈ * (x + 1) ಸಮನಾದ ನೆನಪಿಡಿ;
ನಾನು ಪಾಯಿಂಟರ್ ಎಂಬುದನ್ನು ಮರಳುತ್ತದೆ ಪಾಯಿಂಟರ್ ಸಂಗ್ರಹಿಸುವ ನಿಗದಿಪಡಿಸಲಾಗಿದೆ ವಿಳಾಸ + 1, ಹೇಳುವುದಾದರೆ
ಜೊತೆಗೆ 1 ಬಾರಿ ಪಾಯಿಂಟರ್ ರೀತಿಯ ಗಾತ್ರ.
ಆದ್ದರಿಂದ x = ox100, ನಂತರ x + 1 = ox104.
ಮತ್ತು ಈ ನಿಂದನೆಯನ್ನು ಮತ್ತು ಏನಾದರೂ ಹೇಳಬಹುದು ಚಾರ್ ನಂತಹ * ಸಿ = (ಚಾರ್ *) X;
ಈಗ ಸಿ X ಅದೇ ವಿಳಾಸಕ್ಕೆ ಏರಲಿದೆ.
ಸಿ, ox100 ಸಮಾನವಾಗಿರಬೇಕು ಹಾಕುತ್ತದೆ
ಆದರೆ ಸಿ + 1 ox101 ಸಮಾನವಾಗಿರಬೇಕು ಹಾಕುತ್ತದೆ
ಪಾಯಿಂಟರ್ ಅಂಕಗಣಿತದ ನೀವು ಸೇರಿಸುವ ಎಂದು ಪಾಯಿಂಟರ್ ವಿಧದ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ ಏಕೆಂದರೆ.
ಆದ್ದರಿಂದ C + 1, ಇದು ಸಿ ನೋಡುತ್ತದೆ, ಇದು ಚಾರ್ ಪಾಯಿಂಟರ್, ಆದ್ದರಿಂದ ಇದು, ಚಾರ್ 1 ಬಾರಿ ಗಾತ್ರದ ಸೇರಿಸಲು ವಿಶೇಷವೇನು
, ಇದು ಯಾವಾಗಲೂ 1 ಏರಲಿದೆ, ನೀವು 101 ಪಡೆಯಿರಿ
ನಾನು ಈಗಲೂ ಸಹ 100 ಇದು X, ಏನು ವೇಳೆ, x + 1 104 ಏರಲಿದೆ ಆದರೆ.
[ವಿದ್ಯಾರ್ಥಿ] ನೀವು C + + 1 ನಿಮ್ಮ ಪಾಯಿಂಟರ್ ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಸಲುವಾಗಿ ಬಳಸಬಹುದೆ?
ಹೌದು, ನೀವು.
X ಕೇವಲ ಸಂಕೇತವಾಗಿದೆ ನೀವು X ಆ ಸಾಧ್ಯವಿಲ್ಲ, ಅದು ಸ್ಥಿರವಾಗಿರುತ್ತದೆ; ನೀವು X ಬದಲಿಸಲಾಗುವುದಿಲ್ಲ.
>> ಆದರೆ ಸಿ ಕೇವಲ ಪಾಯಿಂಟರ್ ಎಂದು ನಡೆಯುತ್ತದೆ, ಆದ್ದರಿಂದ C + + ಸಂಪೂರ್ಣವಾಗಿ ಮಾನ್ಯ ಮತ್ತು ಅದು 1 ಹೆಚ್ಚಿಸಲು ಕಾಣಿಸುತ್ತದೆ.
ಸಿ ಕೇವಲ ಒಂದು ಇಂಟ್ * ಒಂದು ವೇಳೆ, ನಂತರ C + + 104 ಎಂದು.
+ + ಮಾಡುತ್ತದೆ ಪಾಯಿಂಟರ್ ಅಂಕಗಣಿತದ ಕೇವಲ C + 1 ಪಾಯಿಂಟರ್ ಅಂಕಗಣಿತದ ಮಾಡಲಾಗುತ್ತದೆ ಎಂದು ಹೊಂದಿವೆ.
ಈ ವಾಸ್ತವವಾಗಿ ವಿಲೀನ ರೀತಿಯ ವಿಷಯಗಳನ್ನು ಹೇಗೆ ಬಹಳಷ್ಟು ಹೊಂದಿದೆ -
ಬದಲಿಗೆ ವಸ್ತುಗಳನ್ನು ನಕಲುಗಳನ್ನು ಸೃಷ್ಟಿಸುವ, ಬದಲಾಗಿ ನೀವು ಹಸ್ತಾಂತರಿಸುತ್ತಾನೆ -
ಈ ಕೆಲವು ಅಳಿಸಿ ನೋಡೋಣ - ನಾನು ರಚನೆಯ ಈ ಅರ್ಧ ರವಾನಿಸಲು ಬಯಸಿದರೆ ಲೈಕ್.
ಲೆಟ್ಸ್ ನಾನು ಕಾರ್ಯ ಆಗಿ ರಚನೆಯ ಈ ಭಾಗದಲ್ಲಿ ಹಾದು ಬಯಸಿದರು ಹೇಳುತ್ತಾರೆ.
ನಾನು ಆ ಕಾರ್ಯ ಹೋಗಬಹುದು?
ನಾನು X ಹಾದು ವೇಳೆ, ನಾನು ಈ ವಿಳಾಸಕ್ಕೆ ಹಾದುಹೋಗುವ ನಾನು.
ಆದರೆ ಈ ನಿರ್ದಿಷ್ಟ ವಿಳಾಸಕ್ಕೆ ರವಾನಿಸ ಬೇಕೆಂದಿರುವ. ಹಾಗಾಗಿ ಯಾವ ನೀಡಬೇಕಿರುತ್ತದೆ?
[ವಿದ್ಯಾರ್ಥಿ] ಪಾಯಿಂಟರ್ + 2?
[ಬೌಡೆನ್] ಆದ್ದರಿಂದ x + 2. ಹೌದು.
ಈ ವಿಳಾಸ ಹೋಗುವುದಿಲ್ಲ.
ನೀವು ಅತ್ಯಂತ ಸಾಧಾರಣವಾಗಿ ಇದನ್ನು ನೋಡುತ್ತಾರೆ X [2] ಮತ್ತು ನಂತರ ವಿಳಾಸ.
ಆದ್ದರಿಂದ ನೀವು ಕಾಣುವ ಒಂದು ಸೂಚ್ಯ dereference ಏಕೆಂದರೆ ಅದರ ವಿಳಾಸಕ್ಕೆ ತೆಗೆದುಕೊಳ್ಳುವ ಅಗತ್ಯವಿಲ್ಲ.
X [2], ಈ ಬಾಕ್ಸ್ನಲ್ಲಿ ಎಂದು ಮೌಲ್ಯವನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಮತ್ತು ನಂತರ ಆ ಪೆಟ್ಟಿಗೆಯ ವಿಳಾಸಕ್ಕೆ ಬಯಸುವ
ನೀವು ಹೇಳುವ ಮತ್ತು X [2].
ಆದ್ದರಿಂದ ನೀವು ಕೆಲಸಕ್ಕೆ ಅರ್ಧ ಪಟ್ಟಿ ರವಾನಿಸ ಬೇಕೆಂದಿರುವ ಅಲ್ಲಿ ವಿಲೀನ ರೀತಿಯ ಎಷ್ಟು ವಿಷಯ
ನೀವು ನಿಜವಾಗಿಯೂ ಕೇವಲ ಪಾಸ್ & X [2], ಮತ್ತು ಈಗ ದೂರದ ಪುನರಾವರ್ತಿತ ಕರೆಯು ಸಂಬಂಧಿಸಿದಂತೆ,
ನನ್ನ ಹೊಸ ವ್ಯೂಹವೇ ಆರಂಭವಾಗುತ್ತದೆ.
ಕೊನೆಯ ನಿಮಿಷದಲ್ಲಿ ಪ್ರಶ್ನೆಗಳನ್ನು.
[ವಿದ್ಯಾರ್ಥಿ] ನಾವು ವನ್ನಾಗಲಿ ಪುಟ್ ಅಥವಾ ಇದ್ದರೆ - ಎಂದು ಏನು ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ? >> ಸ್ಟಾರ್?
[ವಿದ್ಯಾರ್ಥಿ] ಸ್ಟಾರ್. >> ತಾಂತ್ರಿಕವಾಗಿ, dereference ಆಯೋಜಕರು, ಆದರೆ - >> [ವಿದ್ಯಾರ್ಥಿ] Dereference.
>> ನಾವು ಒಂದು ನಕ್ಷತ್ರ ಅಥವಾ ಒಂದು ವನ್ನಾಗಲಿ ಇರಿಸಬೇಡಿ ವೇಳೆ ನಾನು ವೈ ಹೇಳಲು ವೇಳೆ, ಏನಾಗುತ್ತದೆ = X ಮತ್ತು X ಸೂಚಿಯಾಗಿದೆ?
Y ನ ಪ್ರಕಾರ ಯಾವುದು? >> [ವಿದ್ಯಾರ್ಥಿ] ನಾನು ಅದನ್ನು ಪಾಯಿಂಟರ್ 2 ಹೇಳುತ್ತೇನೆ.
ನೀವು ಹೇಳುವ ಹಾಗೆ ವೇಳೆ Y = X ಈಗ x ಮತ್ತು y ಬಿಂದು ಒಂದೇ ಗೆ. >> ಒಂದೇ ಗೆ [ವಿದ್ಯಾರ್ಥಿ] ಪಾಯಿಂಟ್.
ಮತ್ತು X ಒಂದು ಇಂಟ್ ಪಾಯಿಂಟರ್ ವೇಳೆ? ನೀವು ಪಾಯಿಂಟರ್ಸ್ ನಿಯೋಜಿಸಲು ಏಕೆಂದರೆ >> ಇದು ದೂರು ಹೇಳಿದರು.
[ವಿದ್ಯಾರ್ಥಿ] ಸರಿ.
ನಾವು ಬಾಣಗಳು ಅವರನ್ನು ಸೆಳೆಯಲು ಸಹ, ಆ ಪಾಯಿಂಟರ್ಸ್ ನೆನಪಿಡಿ,
ನಿಜವಾಗಿಯೂ ಅವರ ಅಂಗಡಿ - ಇಂಟ್ * X - ನಿಜವಾಗಿಯೂ ಎಲ್ಲಾ X ಉಳಿಸುವುದು, ox100 ಇಷ್ಟಪಡುವ ಸಂಗತಿಯಾಗಿದೆ
ಇದು ನಾವು 100 ಸಂಗ್ರಹಿಸಿಡಬೇಕು ಬ್ಲಾಕ್ ತೋರುತ್ತಿರುವಂತೆ ಪ್ರತಿನಿಧಿಸುವಂತೆ ಸಂಭವಿಸಬಹುದು.
ಹಾಗಾಗಿ ಹೇಳಬೇಕಾದಾಗ ಇಂಟ್ * y = x; ನಾನು y ಕೋಶದಲ್ಲಿ ox100 ನಕಲು ನಾನು,
ಇದು ನಾವು ಸಹ ox100 ತೋರುತ್ತಿರುವಂತೆ, Y ಮಾಹಿತಿ ಪ್ರತಿನಿಧಿಸಲು ನೀನು.
ನಾನು ಹೇಳಲು ವೇಳೆ ಇಂಟ್ I = (ಇಂಟ್) X; ನಂತರ ನಾನು ox100 ಮೌಲ್ಯವನ್ನು ಯಾವುದೇ ಶೇಖರಿಸಿಡಲು ಹೋಗುತ್ತದೆ
ಅದರ ಒಳಗೆ, ಆದರೆ ಈಗ ಅದು ಬದಲಾಗಿ ಪಾಯಿಂಟರ್ ಒಂದು ಪೂರ್ಣಾಂಕ ಅರ್ಥೈಸಿಕೊಳ್ಳಬೇಕು ವಿಶೇಷವೇನು.
ಆದರೆ ನೀವು ಎರಕಹೊಯ್ದ ಅವಶ್ಯಕತೆ ಇಲ್ಲದಿದ್ದರೆ ಅದನ್ನು ದೂರು ಕಾಣಿಸುತ್ತದೆ.
[ವಿದ್ಯಾರ್ಥಿ] ಆದ್ದರಿಂದ ನೀವು ಎರಕ ಅರ್ಥ ಇಲ್ಲ -
ಇದು y ನ X ಅಥವಾ CASTING ಇಂಟ್ ನ ಇಂಟ್ ಎರಕ ಏರಲಿದೆ?
[ಬೌಡೆನ್] ಏನು?
[ವಿದ್ಯಾರ್ಥಿ] ಸರಿ. ಈ ಆವರಣ ನಂತರ ಅಲ್ಲಿ ಒಂದು X ಅಥವಾ ಇಲ್ಲ ಅಯ್ ಎಂದು ಹೋಗುತ್ತದೆ?
>> [ಬೌಡೆನ್] ಒಂದೋ. x ಮತ್ತು y ಸಮನಾಗಿದೆ. >> [ವಿದ್ಯಾರ್ಥಿ] ಸರಿ.
ಇಬ್ಬರೂ ಪಾಯಿಂಟರ್ಸ್ ಇರುವ ಕಾರಣ. >> ಹೌದು.
[ವಿದ್ಯಾರ್ಥಿ] ಹಾಗಾಗಿ ಪೂರ್ಣಾಂಕ ರೂಪದಲ್ಲಿ ಹೆಕ್ಸಾಡೆಸಿಮಲ್ 100 ಸಂಗ್ರಹಿಸಲು ಎಂದು? >> [ಬೌಡೆನ್] ಹೌದು.
ಆದರೆ ಇದು ಸೂಚಿತವಾಗಿರುತ್ತದೆ ಏನೇ ಮೌಲ್ಯವನ್ನು.
[ಬೌಡೆನ್] ಹೌದು. >> [ವಿದ್ಯಾರ್ಥಿ] ಆದ್ದರಿಂದ ಪೂರ್ಣಾಂಕ ರೂಪದಲ್ಲಿ ಕೇವಲ ವಿಳಾಸಕ್ಕೆ. ಸರಿ.
ನೀವು ಕೆಲವು ವಿಲಕ್ಷಣ ಕಾರಣಕ್ಕಾಗಿ ಬಯಸಿದರು, [ಬೌಡೆನ್] ವೇಳೆ
ನೀವು ಪ್ರತ್ಯೇಕವಾಗಿ ಪಾಯಿಂಟರ್ಸ್ ವ್ಯವಹರಿಸುವ ಮತ್ತು ಪೂರ್ಣಾಂಕಗಳ ವ್ಯವಹರಿಸಲು ಅಸಾಧ್ಯವಾಗಿತ್ತು
ಮತ್ತು ಕೇವಲ ಇಂಟ್ * x = 0 ಹಾಗೆ.
ನಂತರ ನೀವು ಪಾಯಿಂಟರ್ ಅಂಕಗಣಿತದ ನಡೆಯುತ್ತಿದೆ ಆರಂಭವಾಗುತ್ತದೆ ಒಮ್ಮೆ ನಿಜವಾಗಿಯೂ ತಪ್ಪಾಗಿ ಎಂದು ನೀನು.
ಆದ್ದರಿಂದ ಅವರು ಸಂಗ್ರಹಿಸಲು ಆ ಸಂಖ್ಯೆಗಳು ಅರ್ಥಹೀನ.
ನೀವು ಅವುಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ ಕೇವಲ ಹೇಗೆ.
ಹಾಗಾಗಿ, ಒಂದು int ಒಂದು ಇಂಟ್ * ನಿಂದ ox100 ನಕಲಿಸಲು ಉಚಿತ ಆಮ್
ಬಹುಶಃ ಎರಕ ಬಗ್ಗೆ ಕೂಗಿ ಕಾಣುವುದು you're - ಮತ್ತು ನಾನು ನಿಯೋಜಿಸಲು ಉಚಿತ ಆಮ್ -
ನಾನು ಈ ಅನಿಯಂತ್ರಿತ ಇಂಟ್ * ಆಗಿ (ಇಂಟ್ *) ox1234 ರೀತಿಯ ನಿಯೋಜಿಸಲು ಉಚಿತ ಆಮ್.
ಆದ್ದರಿಂದ ox123 ಮಾನ್ಯವಾದ ಒಂದು ಮೆಮೊರಿ ವಿಳಾಸಕ್ಕೆ ಮಾಹಿತಿ & ಲಿಸಿ ಕೇವಲ ಮಾಹಿತಿ ಹೊಂದಿದೆ.
ಮತ್ತು ವೈ ಅತ್ಯಧಿಕವಾಗಿ ox123 ಎಂದು ಏನೋ ಮರಳಲು ಸಂಭವಿಸುತ್ತದೆ.
[ವಿದ್ಯಾರ್ಥಿ] ಎಂದು ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ರಿಂದ ದಶಮಾಂಶ ರಚನೆಯಲ್ಲಿ ಹೋಗಲು ನಿಜವಾಗಿಯೂ ತಂಪಾದ ರೀತಿಯಲ್ಲಿ ಎಂದು,
ನೀವು ಒಂದು ಪಾಯಿಂಟರ್ ಹೊಂದಿದ್ದರೆ ಇಷ್ಟ ಮತ್ತು ನೀವು ಒಂದು ಇಂಟ್ ಅದನ್ನು ಪಾತ್ರ?
[ಬೌಡೆನ್] ನೀವು ನಿಜವಾಗಿಯೂ ಕೇವಲ printf ರೀತಿಯಲ್ಲಿ ಬಳಸಿಕೊಂಡು ಮುದ್ರಿಸಬಹುದು.
ಲೆಟ್ಸ್ ನಾನು ಇಂಟ್ Y = 100 ಹೊಂದಿವೆ ಸೇ.
ಆದ್ದರಿಂದ printf (% s \ n - ನೀವು ಈಗಾಗಲೇ ತಿಳಿದುಕೊಳ್ಳಲೇಬೇಕಾದ ಮಾಹಿತಿ - ಮುದ್ರಿಸಲು ಎಂದು ಒಂದು ಪೂರ್ಣಾಂಕ,% x.
ನಾವು ಅದನ್ನು ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಎಂದು ಮುದ್ರಿಸಲು ಮಾಡುತ್ತೇವೆ.
ಆದ್ದರಿಂದ ಒಂದು ಪಾಯಿಂಟರ್, ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಮಾಹಿತಿ ಸಂಗ್ರಹಿಸಲು ಆಗುವುದಿಲ್ಲ
ಮತ್ತು ಒಂದು ಪೂರ್ಣಾಂಕ ದಶಮಾಂಶ ಮಾಹಿತಿ ಸಂಗ್ರಹಿಸಲು ಆಗುವುದಿಲ್ಲ.
ಎಲ್ಲವನ್ನೂ ದ್ವಿಮಾನ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ.
ನಾವು ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಮಾಹಿತಿ ಪಾಯಿಂಟರ್ಸ್ ತೋರಿಸುತ್ತದೆ ಎಂದು ಜಸ್ಟ್
ನಾವು, ಈ 4 ಬೈಟ್ ಖಂಡದಲ್ಲಿ ವಸ್ತುಗಳ ಭಾವಿಸುತ್ತೇನೆ ಏಕೆಂದರೆ
ಮತ್ತು ಮೆಮೊರಿ ವಿಳಾಸಗಳನ್ನು ಪರಿಚಿತ ಒಲವು.
ಇದು BF ಆರಂಭವಾಗುತ್ತದೆ, ಅದು ಸ್ಟಾಕ್ ಮೇಲೆ ಸಂಭವಿಸಿದರೆ, ಹಾಗೆ ನಮ್ಮನ್ನು.
ಆದ್ದರಿಂದ ಕೇವಲ ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಮಾಹಿತಿ ಪಾಯಿಂಟರ್ಗಳ ನಮ್ಮ ವ್ಯಾಖ್ಯಾನ ಇಲ್ಲಿದೆ.
ಸರಿ. ಯಾವುದೇ ಕೊನೆಯಾಗಿ ಪ್ರಶ್ನೆಗಳು?
>> ನೀವು ಬೇರೆ ಏನು ಹೊಂದಿದ್ದರೆ ನಂತರ ನಾನು ಸ್ವಲ್ಪ ಇಲ್ಲಿ ಇರುವಿರಿ.
ಮತ್ತು ಆ ದಿ ಎಂಡ್.
>> [ವಿದ್ಯಾರ್ಥಿ] ವಾಹ್! [ಚಪ್ಪಾಳೆಯನ್ನು]
>> [CS50.TV]