1 คู่มือและรายการหนังสือซีแบบเด็ดขาด คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ คำถามนี้พยายามรวบรวมรายการหนังสือคุณภาพที่ชุมชนเป็นผู้ดูแลค ภาษาการเขียนโปรแกรมกำหนดเป้าหมายในระดับทักษะต่างๆ C เป็นภาษาการเขียนโปรแกรมที่ซับซ้อนซึ่งยากต่อการรับขณะเดินทางโดยการอ่านบทช่วยสอนออนไลน์ หนังสือที่ครอบคลุมมักเป็นวิธีที่ดีที่สุดในการเรียนรู้ภาษาและการหาหนังสือที่ดีเป็นขั้นตอนแรก สิ่งสำคัญคือต้องหลีกเลี่ยงหนังสือที่เขียนไม่ดีและที่สำคัญกว่านั้นคือหนังสือที่มีข้อผิดพลาดทางเทคนิคร้ายแรง โปรดแนะนำการแก้ไขคำตอบที่ได้รับการยอมรับเพื่อเพิ่มหนังสือที่มีระดับความสามารถโดยประมาณและการย่อ / ขยายสั้น ๆ / คำอธิบายเกี่ยวกับหนังสือแต่ละเล่ม ( โปรดทราบว่าคำถามนั้นถูกล็อคดังนั้นจะไม่มีคำตอบใหม่ใด ๆ ตอบรับหนึ่งคำตอบในรายการ ) อย่าลังเลที่จะเลือกหนังสือคุณภาพหัวข้อหัวบทสรุประดับทักษะและสิ่งอื่นใดที่คุณเห็นว่าผิด หนังสือที่ชุมชน C ถือว่าน่าพอใจจะติดอยู่ในรายชื่อ ส่วนที่เหลือจะถูกลบอย่างสม่ำเสมอ สำหรับหนังสือที่มีบทวิจารณ์โดยสมาคมผู้ใช้ C และ C ++ (ACCU) ควรเพิ่มลิงก์ไปยังบทวิจารณ์เหล่านั้นพร้อมกับหนังสือ ดูสิ่งนี้ด้วย: แหล่งข้อมูลที่เกี่ยวข้องกับ C อื่น ๆ ใน ค แท็กวิกิ รายการที่คล้ายกันสำหรับ C ++: คู่มือและรายการหนังสือ C ++ ขั้นสุดท้าย คำถามนี้ถูกกล่าวถึงในMetaเป็นส่วนหนึ่งของที่ถูกลบคำถามตรวจสอบ 2018 ฉันทามติคือการยกเลิกการลบและบำรุงรักษาอย่างแข็งขัน 400 c
2 ทำไม `['ดีกว่า` เซตย่อย' เมื่อฉันต้องการกรอง data.frame เช่นแยกแถวที่ตรงตามเงื่อนไขฉันต้องการใช้subsetฟังก์ชั่น: subset(airquality, Month == 8 & Temp > 90) มากกว่า[ฟังก์ชั่น: airquality[airquality$Month == 8 & airquality$Temp > 90, ] มีสองเหตุผลหลักสำหรับการตั้งค่าของฉัน: ฉันพบว่ารหัสอ่านดีขึ้นจากซ้ายไปขวา แม้แต่คนที่ไม่รู้อะไรเลยเกี่ยวกับอาร์ก็สามารถบอกได้ว่าsubsetข้อความข้างต้นกำลังทำอะไรอยู่ เนื่องจากคอลัมน์สามารถเรียกได้ว่าเป็นตัวแปรในselectนิพจน์ฉันสามารถบันทึกการกดแป้นบางครั้งได้ ในตัวอย่างของฉันข้างต้นผมมีเพียงพิมพ์airqualityครั้งด้วยแต่สามครั้งด้วยsubset[ ดังนั้นฉันจึงมีความสุขใช้กับsubsetทุกที่เพราะสั้นกว่าและอ่านได้ดีขึ้นแม้จะสนับสนุนความงามของมันให้กับนักเขียนโค้ด R ของฉัน แต่เมื่อวานโลกของฉันแตกสลาย ขณะอ่านsubsetเอกสารฉันสังเกตเห็นส่วนนี้: คำเตือน นี่คือฟังก์ชั่นอำนวยความสะดวกสำหรับการใช้งานแบบโต้ตอบ สำหรับการเขียนโปรแกรมจะเป็นการดีกว่าที่จะใช้ฟังก์ชั่นการแบ่งย่อยมาตรฐานเช่น [และโดยเฉพาะอย่างยิ่งการประเมินที่ไม่ได้มาตรฐานของชุดย่อยของอาร์กิวเมนต์สามารถมีผลที่ไม่คาดคิด ใครช่วยอธิบายสิ่งที่ผู้แต่งหมายถึงได้บ้าง ก่อนอื่นพวกเขาหมายถึง " เพื่อใช้แบบโต้ตอบ "? ฉันรู้ว่าเซสชันแบบโต้ตอบคืออะไรเมื่อเทียบกับสคริปต์ที่ทำงานในโหมดแบทช์ แต่ฉันไม่เห็นความแตกต่างที่ควรทำ จากนั้นคุณช่วยอธิบาย " การประเมินผลที่ไม่ได้มาตรฐานของชุดย่อยของข้อโต้แย้ง " และทำไมมันอันตรายหรืออาจเป็นตัวอย่าง? 400 r filter subset r-faq
7 อย่างไรและ / หรือทำไมการรวมกันใน Git ดีกว่าใน SVN ฉันเคยได้ยินในไม่กี่ที่ที่หนึ่งในเหตุผลหลักที่ว่าทำไมระบบควบคุมเวอร์ชันที่กระจายส่องแสงนั้นเป็นการผสานที่ดีกว่าเครื่องมือแบบดั้งเดิมอย่าง SVN อันนี้เป็นเพราะความแตกต่างโดยธรรมชาติในการทำงานของทั้งสองระบบหรือการใช้งาน DVCS เฉพาะเช่น Git / Mercurial เพียงแค่มีการรวมอัลกอริทึมที่ฉลาดกว่า SVN หรือไม่ 400 svn git version-control mercurial merge
17 สิ่งที่ไม่เปลี่ยนแปลงหมายถึงอะไร? นี่อาจเป็นคำถามที่โง่ที่สุดที่เคยถาม แต่ฉันคิดว่ามันค่อนข้างสับสนสำหรับมือใหม่จาวา ใครสามารถอธิบายสิ่งที่มีความหมายโดยไม่เปลี่ยนรูป ? ทำไมถึงStringไม่เปลี่ยนรูป อะไรคือข้อดี / ข้อเสียของวัตถุที่ไม่เปลี่ยนรูป? ทำไมวัตถุที่ไม่แน่นอนเช่นStringBuilderที่ต้องการมากกว่าสตริงและข้อรอง? ตัวอย่างที่ดี (ใน Java) จะได้รับการชื่นชมจริงๆ 400 java string immutability
16 การนับจำนวนองค์ประกอบด้วยค่าของ x ในเวกเตอร์ ฉันมีเวกเตอร์ของตัวเลข: numbers <- c(4,23,4,23,5,43,54,56,657,67,67,435, 453,435,324,34,456,56,567,65,34,435) ฉันจะให้ R นับจำนวนครั้งที่ค่าxปรากฏในเวกเตอร์ได้อย่างไร 400 r vector count r-faq
6 ฉันจะส่งผ่านอาร์กิวเมนต์ unique_ptr ไปยังตัวสร้างหรือฟังก์ชันได้อย่างไร ฉันใหม่เพื่อย้ายซีแมนทิกส์ใน C ++ 11 และฉันไม่รู้วิธีจัดการunique_ptrพารามิเตอร์ใน Constructor หรือฟังก์ชั่น พิจารณาคลาสนี้อ้างอิง: #include <memory> class Base { public: typedef unique_ptr<Base> UPtr; Base(){} Base(Base::UPtr n):next(std::move(n)){} virtual ~Base(){} void setNext(Base::UPtr n) { next = std::move(n); } protected : Base::UPtr next; }; นี่เป็นวิธีที่ฉันควรจะเขียนฟังก์ชั่นการunique_ptrโต้แย้ง? และฉันต้องใช้std::moveในรหัสโทรหรือไม่ Base::UPtr b1; Base::UPtr b2(new Base()); b1->setNext(b2); //should I write b1->setNext(std::move(b2)); instead? 400 c++ arguments c++11 unique-ptr
18 ค้นหาแพ็คเกจทั้งหมดที่ติดตั้งด้วย easy_install / pip หรือไม่ มีวิธีในการค้นหาแพ็คเกจ Python PyPI ทั้งหมดที่ติดตั้งกับ easy_install หรือ pip หรือไม่? ฉันหมายความว่าไม่รวมทุกอย่างที่ติดตั้ง / พร้อมเครื่องมือการกระจาย (ในกรณีนี้คือ apt-get บน Debian) 400 python pip easy-install pypi
14 ปรับขนาดผ้าใบ HTML5 ให้พอดีกับหน้าต่าง ฉันจะปรับขนาด<canvas>องค์ประกอบHTML5 โดยอัตโนมัติเพื่อให้พอดีกับหน้าได้อย่างไร ตัวอย่างเช่นฉันสามารถเพิ่ม<div>ขนาดได้โดยการตั้งค่าheightและwidthคุณสมบัติเป็น 100% แต่<canvas>จะไม่ขยายขนาดใช่หรือไม่ 400 javascript html html5-canvas
26 ไม่มีโมดูลชื่อ MySQLdb ฉันใช้ Python เวอร์ชั่น 2.5.4 และติดตั้ง MySQL เวอร์ชั่น 5.0 และ Django Django ทำงานได้ดีกับ Python แต่ไม่ใช่ MySQL ฉันกำลังใช้งานอยู่ใน Windows Vista 400 python django python-2.x
9 วิธีการเปลี่ยนสีของตัวแยกรายการ Android ListView ฉันต้องการเปลี่ยนสีของListViewเส้นคั่น ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม 400 android android-listview
25 ทำไมการใช้ alloca () จึงไม่ถือว่าเป็นแนวปฏิบัติที่ดี? alloca()malloc()หน่วยความจำที่จัดสรรในกองมากกว่าในกองเช่นในกรณีของ ดังนั้นเมื่อฉันกลับจากรูทีนหน่วยความจำจะถูกปล่อยให้เป็นอิสระ ดังนั้นที่จริงแล้วสิ่งนี้แก้ปัญหาของฉันในการเพิ่มหน่วยความจำที่จัดสรรแบบไดนามิก การเพิ่มจำนวนของหน่วยความจำที่จัดสรรผ่านmalloc()นั้นเป็นเรื่องที่น่าปวดหัวอย่างมากและหากพลาดไปก็จะทำให้เกิดปัญหาหน่วยความจำทุกประเภท ทำไมการใช้งานalloca()ท้อแท้ทั้งๆที่มีคุณสมบัติข้างต้น? 400 c stack malloc allocation alloca
13 เปลี่ยนชื่อคีย์พจนานุกรม มีวิธีการเปลี่ยนชื่อคีย์พจนานุกรมโดยไม่ต้องกำหนดค่าใหม่ให้เป็นชื่อใหม่และลบคีย์ชื่อเก่าออกหรือไม่ และไม่มีการวนซ้ำผ่านคีย์ / ค่า dict? ในกรณีของ OrderedDict ให้ทำเช่นเดียวกันในขณะที่รักษาตำแหน่งของคีย์นั้น 400 python dictionary associative-array ordereddictionary
27 วิธีรีเซ็ต <input type =“ file”> ฉันกำลังพัฒนาแอพ metro ด้วย VS2012 และ Javascript ฉันต้องการรีเซ็ตเนื้อหาของอินพุตไฟล์ของฉัน: <input type="file" id="uploadCaptureInputFile" class="win-content colors" accept="image/*" /> ฉันควรทำอย่างไร 400 javascript visual-studio-2012 winjs
9 ฉันจะเห็นผลงานพิมพ์ปกติที่สร้างขึ้นในระหว่างการใช้งาน pytest ได้อย่างไร? บางครั้งฉันต้องการแทรกคำสั่งการพิมพ์บางอย่างในรหัสของฉันและดูสิ่งที่พิมพ์ออกมาเมื่อฉันออกกำลังกาย วิธีปกติของฉันในการ "ออกกำลังกาย" คือการทดสอบที่มีอยู่กับ pytest แต่เมื่อฉันเรียกใช้สิ่งเหล่านี้ฉันไม่สามารถเห็นเอาต์พุตมาตรฐานใด ๆ (อย่างน้อยก็จากใน PyCharm, IDE ของฉัน) มีวิธีง่ายๆในการดูเอาต์พุตมาตรฐานในระหว่างการทดสอบ pytest หรือไม่? 400 python logging output pytest