Latest web development tutorials
×

C++ หลักสูตร

C++ หลักสูตร C++ แนะนำโดยย่อ C++ การตั้งค่าสภาพแวดล้อม C++ ไวยากรณ์พื้นฐาน C++ หมายเหตุ C++ ชนิดข้อมูล C++ ประเภทตัวแปร C++ ขอบเขตตัวแปร C++ คงที่ C++ ประเภทการปรับเปลี่ยน C++ ประเภทการจัดเก็บ C++ ผู้ประกอบการ C++ การไหลเวียน C++ ผู้พิพากษา C++ ฟังก์ชัน C++ ดิจิตอล C++ แถว C++ เชือก C++ ชี้ C++ อ้างอิง C++ วันที่และเวลา C++ เอาท์พุทหรือ Basic Input C++ โครงสร้างข้อมูล

C++ เชิงวัตถุ

C++ คลาสและวัตถุ C++ สืบทอด C++ ผู้ประกอบการมากเกินไปและการทำงานมากเกินไป C++ polymorphism C++ ข้อมูลที่เป็นนามธรรม C++ ข้อมูล encapsulation C++ อินเตอร์เฟซ(ระดับนามธรรม)

C++ การสอนที่ทันสมัย

C++ แฟ้มและสตรีม C++ การจัดการข้อยกเว้น C++ หน่วยความจำแบบไดนามิก C++ namespaces C++ แบบ C++ preprocessor C++ การประมวลผลสัญญาณ C++ multithreading C++ Web โครงการ

C++ กรุ

C++ STL หลักสูตร C++ ห้องสมุดมาตรฐาน C++ ทรัพยากรที่มีประโยชน์

c ++ ชี้ VS อาร์เรย์

c ++ ชี้ c ++ ชี้

ชี้และอาร์เรย์มีความสัมพันธ์กันอย่างใกล้ชิด ในความเป็นจริงตัวชี้และอาร์เรย์ในหลายกรณีสามารถใช้แทนกัน ยกตัวอย่างเช่นตัวชี้ไปยังจุดเริ่มต้นของอาร์เรย์อาร์เรย์ที่สามารถเข้าถึงได้โดยการหาค่าตัวชี้หรือดัชนีอาร์เรย์ พิจารณาโปรแกรมต่อไปนี้:

#include <iostream>
 
using namespace std;
const int MAX = 3;
 
int main ()
{
   int  var[MAX] = {10, 100, 200};
   int  *ptr;
 
   // 指针中的数组地址
   ptr = var;
   for (int i = 0; i < MAX; i++)
   {
      cout << "Address of var[" << i << "] = ";
      cout << ptr << endl;
 
      cout << "Value of var[" << i << "] = ";
      cout << *ptr << endl;
 
      // 移动到下一个位置
      ptr++;
   }
   return 0;
}

เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:

Address of var[0] = 0xbfa088b0
Value of var[0] = 10
Address of var[1] = 0xbfa088b4
Value of var[1] = 100
Address of var[2] = 0xbfa088b8
Value of var[2] = 200

อย่างไรก็ตามตัวชี้และอาร์เรย์แทนกันไม่ได้อย่างสมบูรณ์ ยกตัวอย่างเช่นพิจารณาโปรแกรมต่อไปนี้:

#include <iostream>
 
using namespace std;
const int MAX = 3;
 
int main ()
{
   int  var[MAX] = {10, 100, 200};
 
   for (int i = 0; i < MAX; i++)
   {
      *var = i;    // 这是正确的语法
      var++;       // 这是不正确的
   }
   return 0;
}

ผู้ประกอบการชี้ * ถูกนำไปใช้ var เป็นที่ยอมรับอย่างสมบูรณ์ แต่ค่าการปรับเปลี่ยน var เป็นสิ่งผิดกฎหมาย เพราะนี่คือ var เป็นตัวชี้ไปยังจุดเริ่มต้นของค่าคงที่อาร์เรย์ก็ไม่สามารถทำหน้าที่เป็นมูลค่าซ้าย

เพราะชื่ออาร์เรย์สอดคล้องกับตัวชี้คงที่พวกเขาไม่ได้เปลี่ยนค่าของอาร์เรย์คุณยังสามารถใช้แบบฟอร์มตัวชี้ในการแสดงออก ตัวอย่างต่อไปนี้เป็นคำสั่งที่ถูกต้องที่ var [2] 500 ที่ได้รับมอบหมาย:

*(var + 2) = 500;

ข้อความข้างต้นถูกต้องและประสบความสำเร็จสามารถรวบรวมเพราะ var ไม่เปลี่ยนแปลง

c ++ ชี้ c ++ ชี้