การแปลงโดยนัย
การเลื่อนชนิดโดยอัตโนมัติ
การแปลงโดยนัย เป็นบทเรียน C Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C Academy มีบทเรียนทั้งหมด 4 บทเรียน
การแปลงคืออะไร
เมื่อภาษา C รวมค่าที่มีชนิดแตกต่างกัน ภาษา C จะแปลงชนิดหนึ่งเป็นอีกชนิดหนึ่งโดยอัตโนมัติ การทำเช่นนี้เรียกว่า การแปลงโดยปริยาย
#include <stdio.h>
int main(void) {
int i = 5;
double d = i;
printf("d = %.1f\n", d);
return 0;
}การเลื่อนชนิดจำนวนเต็มขึ้น
ชนิดจำนวนเต็มขนาดเล็กอย่าง char และ short จะถูกเลื่อนเป็น int ก่อนการคำนวณ
#include <stdio.h>
int main(void) {
char a = 10, b = 20;
int sum = a + b;
printf("sum = %d\n", sum);
return 0;
}การแปลงทางคณิตศาสตร์ตามปกติ
ในนิพจน์ผสม ตัวถูกดำเนินการที่มีชนิดแคบกว่าจะถูกแปลงเป็นชนิดที่กว้างกว่า เพื่อให้ทั้งสองมีชนิดตรงกันก่อนดำเนินการ
#include <stdio.h>
int main(void) {
int i = 3;
double d = 2.0;
printf("%.1f\n", i + d);
return 0;
}จาก int เป็น double
เมื่อกำหนดค่า int ให้กับ double ค่าจะถูกขยายอย่างปลอดภัยโดยยังคงค่าเดิมไว้อย่างแม่นยำ
#include <stdio.h>
int main(void) {
int count = 7;
double avg = count;
printf("avg = %.1f\n", avg);
return 0;
}จาก double เป็น int จะตัดเศษทิ้ง
การกำหนดค่า double ให้กับ int จะตัดส่วนทศนิยมทิ้ง โดยไม่มีการปัดเศษ
#include <stdio.h>
int main(void) {
double d = 9.99;
int n = d;
printf("n = %d\n", n);
return 0;
}char และ int
char เก็บจำนวนเต็มขนาดเล็ก ซึ่งเป็นรหัสอักขระของมัน และสามารถแปลงเป็น int ได้โดยธรรมชาติ
#include <stdio.h>
int main(void) {
char c = 'A';
int code = c;
printf("code = %d\n", code);
return 0;
}การแปลงขณะกำหนดค่า
ด้านขวาจะถูกแปลงเป็นชนิดของด้านซ้ายในระหว่างการกำหนดค่า
#include <stdio.h>
int main(void) {
double pi = 3;
printf("pi = %.1f\n", pi);
return 0;
}ความประหลาดใจจากการหารแบบผสม
5 / 2 เป็นการหารจำนวนเต็ม ซึ่งได้ 2 หากต้องการหารจริง ให้เปลี่ยนตัวถูกดำเนินการตัวใดตัวหนึ่งเป็น double
#include <stdio.h>
int main(void) {
printf("%.1f\n", 5 / 2.0);
return 0;
}การแปลงลักษณะเดียวกับบูลีน
ในเงื่อนไข ค่าที่ไม่ใช่ศูนย์จะถูกแปลงเป็นจริง ส่วนศูนย์จะถูกแปลงเป็นเท็จ
#include <stdio.h>
int main(void) {
int x = 3;
if (x)
printf("nonzero is true\n");
return 0;
}การแปลงค่าที่ส่งกลับ
ค่าที่ส่งกลับจะถูกแปลงเป็นชนิดค่าที่ฟังก์ชันประกาศว่าจะส่งกลับ หากส่งค่า double จากฟังก์ชันชนิด int ค่าจะถูกตัดเศษ
#include <stdio.h>
int half(int n) {
return n / 2;
}
int main(void) {
printf("%d\n", half(7));
return 0;
}การส่งอาร์กิวเมนต์
อาร์กิวเมนต์จะถูกแปลงเป็นชนิดของพารามิเตอร์เมื่อมีต้นแบบฟังก์ชันอยู่ในขอบเขต
#include <stdio.h>
void show(double d) {
printf("%.1f\n", d);
}
int main(void) {
show(5);
return 0;
}ตรวจสอบอย่างรวดเร็ว
ทดสอบความเข้าใจเกี่ยวกับการแปลงโดยปริยาย
สรุป: การแปลงโดยปริยาย
คุณได้เรียนรู้การแปลงชนิดอัตโนมัติแล้ว
- C จะแปลงตัวถูกดำเนินการเป็นชนิดกลางร่วมกัน
- จำนวนเต็มขนาดเล็กจะเลื่อนเป็น
int - การแปลงจาก int เป็น double จะขยายอย่างปลอดภัย
- การแปลงจาก double เป็น int จะตัดเศษทิ้ง
- การหารจำนวนเต็มอาจทำให้เกิดผลลัพธ์ที่คาดไม่ถึง เว้นแต่ตัวถูกดำเนินการตัวหนึ่งจะเป็น double
คำถามที่พบบ่อย
บทเรียน “การแปลงโดยนัย” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การแปลงโดยนัย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การแปลงโดยนัย”
การเลื่อนชนิดโดยอัตโนมัติ คุณปฏิบัติ C Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน C Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การแปลงโดยนัย” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน C Academy นี้ได้ไหม
ได้ บทเรียน C Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ