Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 17 kết quả

Đề tài: Cách tạo biến động và kiểm tra biến động có tồn tại hay không?

  1. #1
    Ngày gia nhập
    11 2011
    Bài viết
    27

    Mặc định Cách tạo biến động và kiểm tra biến động có tồn tại hay không?

    Mình có 3 câu hỏi khó nhờ các bạn giúp đỡ.
    - Mình muốn kiểm tra xem một biến có tồn tại hay không mình phải dùng hàm nào?
    - Mình muốn delete một biến mình phải dùng hàm nào?
    - Mình muốn tạo một biến do mình tự nhập vào mình phải dùng hàm nào?

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    46

    Những câu hỏi của bạn là rất cơ bản, bạn nên tìm một cuốn sách cơ bản về C mà đọc đi đã. Chưa học bò bạn không thể chạy được.
    Chu trình sống của biến phụ thuộc vào tầm vực (local, global). Tạo biến trong C không cần dùng hàm, xóa biến là không thể, chỉ có thể xóa vùng nhớ của nó mà thôi. Bạn không thể kiểm tra sự tồn tại của biến, nếu bạn đã khởi tạo thì nó sẽ mãi còn đó, cái chính là giá trị của nó, trong tầm vực mà bạn khai báo biến sẽ tồn tại mãi cho đến khi nào bạn ra khỏi tầm vực đó.

  3. #3
    Ngày gia nhập
    11 2011
    Bài viết
    27

    Trích dẫn Nguyên bản được gửi bởi Halen Xem bài viết
    Những câu hỏi của bạn là rất cơ bản, bạn nên tìm một cuốn sách cơ bản về C mà đọc đi đã. Chưa học bò bạn không thể chạy được.
    Chu trình sống của biến phụ thuộc vào tầm vực (local, global). Tạo biến trong C không cần dùng hàm, xóa biến là không thể, chỉ có thể xóa vùng nhớ của nó mà thôi. Bạn không thể kiểm tra sự tồn tại của biến, nếu bạn đã khởi tạo thì nó sẽ mãi còn đó, cái chính là giá trị của nó, trong tầm vực mà bạn khai báo biến sẽ tồn tại mãi cho đến khi nào bạn ra khỏi tầm vực đó.
    Không có bạn ah mình tìm hết trong các ebook về c rồi không có, mình còn lục cả google mà còn không được nên mới nhờ các bạn giúp.

    int bien; // tạo biến tên là bien kiểu int
    Nếu chỉ là kiểu tạo biến như trên thì lại quá rễ, đằng này mình muốn tạo biến động.

    vd : taobiendong("int", "daylabien1"); là có thể tạo được một biến là daylabien1 kiểu int;

    Xóa cụng vậy xoabiendong("daylabien1"); biến daylabien1 sẽ được xóa (trước khi xóa sẽ kiểm tra xem biến daylabien1 có tồn tại hay không)

    Phức tạp thế cơ mà

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    46

    Trong C thì bạn có thể dùng con trỏ void, nó là một dạng của generic. Trong C++ thì bạn dùng template, trong C++11 thì bạn dùng từ khóa auto. Ý nghĩa là nó cho bạn tạo biến với bất kì dữ liệu nào. Tuy nhiên, việc xóa biến là hoàn toàn không làm được, bạn chỉ có thể xóa vùng nhớ của nó mà thôi, khi bạn khởi tạo biến, nó đã được ghi vào vùng nhớ của chương trình, chỉ khi nào chương trình bạn hết hoạt động, nó mới thu hồi được thôi.

    Đây là ví dụ template:
    C++ Code:
    1. #include <iostream>
    2. #include <string>
    3.  
    4. using namespace std;
    5.  
    6. template<typename T>
    7. T get_type(const string& type= "int", T value = T()) {
    8.     if (type == "int") {
    9.         return int(value);
    10.     }
    11.     else {
    12.         return double(value);
    13.     }
    14. }
    15.  
    16. int main() {
    17.     int x = get_type("int", 5);
    18.     cout << x << endl;
    19.     double y = get_type("double", 5.0);
    20.     cout << y << endl;
    21.  
    22.     return 0;
    23. }

  5. #5
    Ngày gia nhập
    11 2011
    Bài viết
    27

    Mình xem ví dụ của bạn rồi mình thấy nó đau có liên quan gì đến tạo biến động đâu

  6. #6
    Ngày gia nhập
    10 2011
    Bài viết
    46

    Mặc định Cách tạo biến động và kiểm tra biến động có tồn tại hay không?

    Biến động chỉ là con trỏ được cấp phát động, con trỏ có thể trỏ tới nhiều kiểu khác nhau. Vậy thì thay vì trả về kiểu T, bạn chỉ trả về kiểu T* là xong thôi. Nhưng abstract base class pointer kiểu này luôn luôn chậm hơn template, và đó là lý do tại sao STL library không dùng virtual function.
    Bạn google đọc về template đi, nó là cái đang bạn cần đó.

  7. #7
    Ngày gia nhập
    11 2011
    Bài viết
    27

    Mình bắt đầu thấy mơ mơ hồ hồ rồi

    Bạn có thể viết cho mình một đoạn code mẫu tạo biến động được không?

    Để mình chỉ cần gọi:

    taobiendong("int", "bienx", 515); // tạo một biến tên là bienx kiểu int giá trị là 515;
    printf ("%d", bienx); in bienx ra màn hình;

  8. #8
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Cho mình hỏi lại bạn một tí : bạn cần tạo biến động thế để sử dụng vào mục đích gì ? Bạn thử ví dụ 1 trường hợp cần xài nó xem.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  9. #9
    Ngày gia nhập
    10 2011
    Bài viết
    552

    @ 25mez... : Như thế thì đâu thể hiện gì động hay tĩnh ??
    Mình ko hiểu cái khái niệm "biến động" mà bạn đề cập là cái gì cả. Mô tả rõ hơn chút dc ko nhỉ ? Hoặc là có thể bạn đang cố "màu mè" hóa các thuật ngữ.

    Nếu bạn muốn "tạo biến" từ 1 hàm taobiendong , để sau khi gọi hàm này , ta sở hữu trong tay 1 biến và có thể làm việc dc.
    Vậy theo ngu kiến của mình chỉ có thể 2 trường hợp.
    Tạo bằng con trỏ và cấp cho nó 1 vùng nhớ, hàm return về con trỏ.
    Tạo 1 biến global bằng lớp static để lưu trữ nó.

    Và chả có cái gì gọi là "biến động" cả @@.
    Đã được chỉnh sửa lần cuối bởi clchicken : 01-12-2011 lúc 07:06 PM.
    Um Mani Padme Hum...!!

  10. #10
    Ngày gia nhập
    11 2011
    Bài viết
    27

    int biena; đây là biễn tĩnh (biến tĩnh do bạn viết thẳng vào code)
    Còn biến động là do bạn nhập vào.
    kiểu như eval ý vd eval("int z=10;"); //tạo biến z gán giá trị bằng 10

    ah mà thôi google cả buổi cuối cùng bằng zero C không hỗ trợ tạo biến động

    close topic

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

  1. Lỗi chương trình không nhận biến(không return được biến từ public sang main)
    Gửi bởi nang trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 4
    Bài viết cuối: 02-10-2011, 06:04 PM
  2. Thuộc tính khóa ngoài( tham chiếu) biến mất khi biến đổi từ file XML sang DataTable
    Gửi bởi itmanhieu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 17-08-2011, 08:02 PM
  3. làm sao để 2 biến Datetime trừ nhau ra biến float or double?
    Gửi bởi robocon1183 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 1
    Bài viết cuối: 10-12-2009, 05:11 PM

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