2010-12-04 9 views
14

मैं वर्तमान में कॉलेज में एक ताजा व्यक्ति हूं, सीएस में प्रमुखता। मैं बस अपने "परिचय कंप्यूटर प्रोग्रामिंग" कक्षा के साथ किया गया है। मुझे यह पसंद है और मुझे लगता है कि मैं थोड़ा सा सीख रहा हूं।जावा स्टैंडपॉइंट से सी पॉइंटर्स और सरणी पर ट्यूटोरियल

कुछ दिन पहले, मैंने जोएल के The Peril Of Java Schools को पढ़ा। "एक लिंक्ड लिस्ट?" मैंने सोचा, "वे भी कठिन नहीं हैं। हमने पहले से ही कक्षा में उन लोगों का एक समूह किया है जो मैं अभी हूं।" जो सही है, क्योंकि जावा में, वे कठिन नहीं हैं। लेकिन वैसे भी, मैंने कोशिश में सी को लिखने की कोशिश की।

और यह बहुत मुश्किल है!

जोएल सही था, मुझे लगता है ... जावा आपके लिए इतनी छोटी चीजों के साथ सौदा करता है कि यह वास्तव में कठिन नहीं है। लेकिन मैं अपने स्कूल के जावा-टॉड को दूर करने और सी

में इस डांग लिंक्ड सूची को कैसे लिखना है, तो मुझे लगता है कि बहुत सारे और बहुत छोटे प्रश्न पूछने की कोशिश करने के बजाय, मैं पूछ रहा हूं, करता हूं किसी को भी सीखने के लिए एक अच्छा (& मुफ्त) ऑनलाइन ट्यूटोरियल पता है? विशेष रूप से, पॉइंटर्स से निपटने का तरीका सीखना, और उन सभी प्रतीकों (&, *, **, [] और वे एक साथ कैसे काम करते हैं) मुझे लगता है कि मैं जावा में पहले से ही बहुत कुशल हूं, इसलिए मुझे ट्यूटोरियल की आवश्यकता नहीं है "हैलो, वर्ल्ड!" कैसे लिखना है कार्यक्रम। लेकिन फिर मैं निश्चित रूप से किसी भी सुपर-एडवांस्ड सी या सी ++ में शामिल होने के लिए तैयार नहीं हूं, क्योंकि मुझे पता है कि जावा है।

किसी भी मदद की सराहना की!

+9

ऑनलाइन ट्यूटोरियल के साथ समस्या यह है कि वे लगभग हमेशा खराब गुणवत्ता वाले हैं और हानिकारक तकनीकी त्रुटियां और अन्य गलतियां हैं, या आमतौर पर खराब शैली कोडिंग की अनुशंसा करते हैं (मैं ऑनलाइन सी संसाधनों से परिचित नहीं हूं क्योंकि मैं सी ++ के साथ हूं, लेकिन सी ++ के लिए, कोई अच्छा, मुफ्त ऑनलाइन ट्यूटोरियल नहीं हैं)। यदि आप सी सीखना चाहते हैं और कैसे पॉइंटर्स और एरे और भाषा के अन्य पहलू काम करते हैं, तो अपने आप को एक एहसान दें और [एक अच्छी शुरुआत पुस्तक] प्राप्त करें (http://stackoverflow.com/questions/562303/the-definitive-c- पुस्तक-गाइड और सूची)। –

+1

मुझे नहीं पता कि "जावा स्टैंडपॉइंट से" निर्दिष्ट करके कुछ भी प्राप्त किया जा सकता है क्योंकि जावा के पास पॉइंटर के लिए कोई स्पष्ट समानता नहीं है ... शायद आप बस [पॉइंटर्स को अच्छी सामान्य मार्गदर्शिका] चाहते हैं (http : //stackoverflow.com/q/4016765/2509), और वहां [हैं] (http://stackoverflow.com/questions/5727/what-are-the-barriers-to-understanding-pointers-and-what- इसके लिए प्रश्न हो सकते हैं [पहले से ही] (http://stackoverflow.com/questions/2271490/c-pointers-good-tutorials)। – dmckee

+0

हालांकि, [अल्फ स्टीनबाच के पॉइंटर्स ट्यूटोरियल] (https://docs.google.com/fileview?id=0B2oiI2reHOh4M2MzNzYwYzQtMGZkNC00NTljLWJiM2UtOGI0MmRkMTMyZGY4) आपके लिए उपयोगी हो सकता है। यह अच्छी तरह से लिखा गया है, लेकिन सी ++ पर केंद्रित है, सी नहीं। हालांकि आपको अभी भी एक अच्छी किताब चाहिए। –

उत्तर

6

कुछ ट्यूटोरियल:

कुछ अच्छा सूचक जवाब जो मदद कर सकता है:

पहले संकेत दिए गए और उनके नुकसान के बारे में एक बहुत अच्छी पढ़ी जाती है आप अतीत पास्कल वाक्य रचना मिल सकती है।

+1

एक टिप्पणी के रूप में बेहतर। – dmckee

+0

@dmckee एक टिप्पणी में लिंक की एक सूची प्रस्तुत करने के लिए मुश्किल है? –

+0

मैं इसे हर समय करता हूं। इस प्रश्न पर मेरी टिप्पणी में 3 लिंक हैं, और मैं कभी-कभी कई और करता हूं। इनलाइन सिंटैक्स '[' text '] (' link ')' का उपयोग करें। पाठ्यक्रम की लंबाई सीमा है, लेकिन आप 600 वर्णों में बहुत कुछ प्राप्त कर सकते हैं। – dmckee

3

जांचें और देखें कि आपके पाठ्यक्रम में सिस्टम प्रोग्रामिंग की आवश्यकता है या नहीं। यह आमतौर पर 300-स्तर का सोफोरोर कोर्स होता है, और मैं उस अगले सेमेस्टर के लिए नामांकित हूं। यह यूनिक्स में सी + जीसीसी के साथ काम करने में काफी शामिल है।

यदि कोई मौजूद है, तो अपने सीएस डिप्टी लाइब्रेरी की जांच करें। मैंने सर्दियों के ब्रेक के माध्यम से काम करने के लिए K & आर की प्रतिलिपि उठाई।

+2

के एंड आर की सी पुस्तक की एक प्रति लेने की तुलना में कोई बेहतर सलाह नहीं है। यह छोटा, संक्षिप्त और स्पष्ट है। – gbc

+1

के एंड आर इस पुस्तक को संदर्भित करता है: द सी प्रोग्रामिंग भाषा कर्नीघन और रिची द्वारा - http://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628/ref=sr_1_1?ie=UTF8&qid=1291498331&sr= 8-1 –

1

This सी ++ के लिए है, सी नहीं; लेकिन अध्याय 3.7 तक या तो मशीन स्तर पर सामान के बारे में बात करते हैं जो कि सी प्रोग्रामर के लिए उपयोगी है।

+0

मैंने पहले उस वेबसाइट को नहीं देखा है, लेकिन एक संक्षिप्त नज़र के बाद, मैं तर्क दूंगा कि इसे एक अच्छा सी ++ संसाधन के रूप में अनुशंसित नहीं किया जाना चाहिए। यह अपवादों पर बिल्कुल चर्चा नहीं करता है, इसलिए यह आरएआईआई या स्मार्ट पॉइंटर्स पर भी चर्चा नहीं करता है।यह एसटीएल कंटेनरों को अपने आप के लिए छोड़ देता है जो "उपयोग करने में आसान" हैं। स्पष्ट रूप से लेखक ने बहुत सी ++ प्रोग्राम नहीं किया है क्योंकि वह कहता है "क्योंकि मानक लाइब्रेरी पहचानकर्ताओं का उपयोग अक्सर किया जाता है, हर बार जब हम उनमें से किसी एक को संदर्भित करना चाहते हैं तो 'std ::' कहना मुश्किल होता है।" मुझे नहीं पता कि पुस्तक पॉइंटर्स के बारे में क्या कहती है, लेकिन मुझे विश्वास नहीं होगा। –

+0

@ जेम्स यह बाद में अपवादों के माध्यम से जाता है, और पॉलिमॉर्फिक कक्षाओं के प्रबंधन के लिए लिफाफे-बॉडी मुहावरे का उपयोग दिखाता है। अवधारणाओं को पेश किया जाता है क्योंकि वे आवश्यक हो जाते हैं। मुझे हर बार 'std ::' लिखना परेशान लगता है, और यह ठीक है क्योंकि मैंने बहुत कुछ लिखा है। असली नामस्थान प्रणाली रखने का आधा बिंदु उपसर्ग को छोड़ने में सक्षम होना है जब यह * संघर्ष नहीं करता है, आईएमओ। गंभीरता से, कृपया इसे जल्दी से न्याय न करें। –

0

सीखने वाले पॉइंटर्स के लिए इंटरनेट पर कई मार्गदर्शिकाएं हैं। यहां एक है: http://pweb.netcom.com/~tjensen/ptr/pointers.htm जो मैंने उपयोग किया है।

मैं आपको यह पुस्तक सुझाता हूं: Hacking, the Art of Exploitation 2nd Ed

यह पुस्तक आपको "हैकर" नहीं बनाती है। कुछ भी नहीं बल्कि रिवर्स इंजीनियरिंग/बाइनरी कोड, परीक्षण और त्रुटि इत्यादि का अध्ययन करने जा रहा है। हालांकि, यह आपको परिचय देता है कि आप इन चीजों को कैसे शुरू करना शुरू करते हैं और यह पॉइंटर्स समेत कैसे काम करता है, इसकी मूलभूत समझ के लिए आता है। असेंबली/सी के लिए इसका परिचय सबसे अच्छा है जिसे मैंने देखा है क्योंकि यह आपको कई सी उदाहरणों के माध्यम से चलाता है और आप कैसे जांचते हैं कि gdb, कमांड लाइन डीबगिंग टूल के साथ क्या चल रहा है। इस तरह आप सी देख सकते हैं और असेंबली देख सकते हैं। इसमें पॉइंटर्स की मूलभूत समझ शामिल है।

यह पुस्तक एक साइड इफेक्ट के रूप में आपको ढेर और ढेर, डेटा संरचनाओं आदि के लिए परिचय प्रदान करेगी। संक्षेप में, परिचय अनुभागों को पढ़ने से आपको अपने शेष पाठ्यक्रम के लिए बहुत लाभ मिलेगा।

संबंधित मुद्दे