Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Tìm hiểu về từ khóa const - const với nhiều ý nghĩa

  1. #1
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Wink Tìm hiểu về từ khóa const - const với nhiều ý nghĩa

    Lâu lắm rồi langman mới có dịp viết bài viết tut trên C việt, có gì ko nên ko phải mong được các bạn bỏ qua cho. langman giờ già rồi, kém xa các 9x mới. Chả còn gì cả, chỉ còn 1 tí kinh nghiệm mong được chia sẻ với các bạn, xin các bạn chém nhẹ nhàng.....

    (Do tạm thời mình ko có quyền trên box C nên mình sẽ trình bày ở đây, sau khi hoàn thiện mình sẽ move về box C)


    Chúng ta đã lập trình nhiều rồi, const thì ai chả biết, trình với trả bày dài dòng loằng ngoằng làm chi cho mệt xác



    const trong C
    I. Cơ bản
    Cơ bản nhất, const là 1 từ khóa, và chỉ tồn tại trong câu khai báo hoặc định kiểu(ép kiểu). Từ khóa const có ý nghĩa khai báo, xác định hằng (có thể là hằng số, hoặc loại hằng khác)
    Chú ý : hằng ở đây có ý nghĩa là 1 đại lượng ko đổi nào đó

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main(void)
    5. {
    6.     const int a=2;
    7.     printf("%d",a);
    8.     getch();
    9. }
    10. // bài viết được biên soạn bởi langman-congdongcviet.com - Bùi Tấn Quang - 1987
    II. Sự khác nhau giữa hằng và biến
    Mới các bạn tham khảo ví dụ sau ta thấy
    + Nếu ta so sánh 2 biến, đầu tiên, sẽ đưa giá trị của biến thứ nhất vào trong thanh ghi eax, sau đó so sánh giá trị của thanh ghi eax với biến thứ 2, ở đây ta cần chú ý đó là biến thứ 2 lúc này đang nằm trên stack, cụ thể là nằm trên bộ nhớ RAM
    + Nếu ta so sánh biến với 1 hằng, ta thấy việc so sánh sẽ đơn giản hơn rất nhiều




    III. Nếu theo lời ví dụ nói thì tôi dùng const để làm gì ?
    Theo như lời nói trên thì tôi dùng const làm quái gì cho mệt, thay luôn con số vào đó cho nhanh có phải hơn ko nhỉ ?
    Vâng thưa các bạn đối với một bài toán, 1 ví dụ khá nhỏ ở đây của tôi, thì việc dùng const có vẻ ko mang lại lợi ích gì nhỉ
    nhưng đối với 1 bài toán khá dài, 1 vấn đề lớn, thì ta sẽ ko làm bằng cách gõ luôn số má vào, mà ta sẽ chia làm nhiều khối, có 1 khối bao gồm các định nghĩa const riêng.
    sau naỳ, khi có yêu cầu thay đổi về thì ta chỉ cần thay đổi giá trị tại 1 chỗ là ok!


    C++ Code:
    1. const int hangsophuthuoc=9; // khi cần thay đổi hằng số này thì ta chỉ cần thay đổi ở đây
    2. void ham1(void)
    3. {
    4.     //dung hangsophuthuoc
    5. }
    6. void ham2(void)
    7. {
    8.     //dung hangsophuthuoc
    9. }
    10. void ham3(void)
    11. {
    12.     //dung hangsophuthuoc
    13. }
    14. void ham4(void)
    15. {
    16.     //dung hangsophuthuoc
    17. }
    18. void ham5(void)
    19. {
    20.     //dung hangsophuthuoc
    21. }
    22. void ham6(void)
    23. {
    24.     //dung hangsophuthuoc
    25. }

    IV. Tôi có thể dùng macro để định nghĩa mà, tại sao tôi phải dùng const làm gì?
    Vâng bạn hoàn toàn có thể sử dụng macro, nhưng
    + macro có thể được định nghĩa lại tại bất kì chỗ nào
    C++ Code:
    1. #define CVIET   3
    2.  
    3. //something here
    4.  
    5.  
    6. #undef CVIET
    7. #define CVIET 5

    + macro ko giấu được giá trị định nghĩa sẵn trong 1 lib file
    .............................

    + macro dùng ko cẩn thận thì sẽ...
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. #include <conio.h>
    4.  
    5.  
    6. #define HANGSO  2+4+4
    7. const int hangso=2+4+4;
    8.  
    9. void main(void)
    10. {
    11.     int a=HANGSO*2;
    12.     int b=hangso*2;
    13.  
    14.     cout<<"a "<<a<<endl;
    15.     cout<<"b "<<b;        
    16.     getch();
    17. }


    V. Những trường hợp cần dùng const trong C
    Attached Thumbnails Attached Thumbnails sosanh.png  
    Đã được chỉnh sửa lần cuối bởi langman : 10-01-2012 lúc 01:26 PM.
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Đề nghị các bạn ko spam cho đến khi bài viết hoan thành
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

Các đề tài tương tự

  1. Lập trình C++0x const: ý nghĩa của const trong khai báo function
    Gửi bởi quano1 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 06-08-2013, 07:24 AM
  2. lỗi cannot convert `const char*' to `const WCHAR*' for argument khi dùng autoit với c++
    Gửi bởi morongtraitim88 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 03-06-2011, 08:54 PM
  3. const A* const method(const A* const) const;//const thứ 2
    Gửi bởi david8xvn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 18
    Bài viết cuối: 23-09-2010, 12:36 AM
  4. [VC++] - Hỏi hàm có gắn từ khóa const phía sau
    Gửi bởi vuongngocnam trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 04-05-2010, 06:18 PM
  5. [VC] Cannot convert parameter 1 from 'const char [23]' to 'const wchar_t *'
    Gửi bởi lychailon trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 09-12-2006, 11:22 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn