I. Một số khái niệm C cho AVR.
4. Từ khóa định tính const cho các kiểu
Để giúp tăng cường độ an toàn trong các chương trình, các giá trị có thể được đánh dấu là các hằng bằng từ khóa định tính const. Với từ khóa này thì một biến khai báo trở thành một hằng. Mọi thao tác do vô ý hay cố ý để điều chỉnh giá trị của nó sẽ bị báo lỗi bởi hầu hết các trình dịch. Bởi vì sau khi đã dùng từ khóa định tính const thì các giá trị của biến không thể thay đổi nữa nên người lập trình phải gán giá trị ban đầu ngay lúc khai báo.
Chuẩn C cho phép hoán đổi vị trí của các hiệu chính. Thí dụ cả hai khai báo hằng sau đây là tương đương
int const black = 12; const int black = 12;
Cách khai báo đầu thường phản ánh cách dùng const trong cách dùng kiểu con trỏ trong khi cách thứ nhì lại tự nhiên hơn và phổ dụng hơn.
5. Con trỏ
Một biến có thể được khai báo như là một con trỏ chỉ đến các giá trị có kiểu nào đó, với ý nghĩa của dùng từ khóa định tính *. Để khai báo chỉ việc viết thêm ngay trước tên biến một dấu sao:
char *square; long *circle;
Nếu dùng nhiều hơn một dấu sao thì sẽ tạo nên dạng các con trỏ đứng trước chỉ vào con trỏ đứng sau và con trỏ cuối cùng mới chỉ đến địa chỉ của giá trị biến.
Sau đây là thí dụ về các khai báo con trỏ hợp lệ: long int *rectangle;
const char *kite;
Việc dùng const trong trường hợp cuối cùng: ở đây kite là một con trỏ không phải là hằng chỉ tới một const char (tức là nó chỉ tới là một hằng có kiểu kí tự). Giá trị của kite tự nó không phải là hằng, chỉ có giá trị của char mà nó chỉ tới là một hằng.
Vị trí của từ khoá const đặt sau kiểu sẽ cho một cách thức để khai báo hằng con trỏ. Và như là một hằng, nó phải được gán giá trị khởi động khi khai báo:
char * const pentagon = &some_char;
Ở đây, pentagon là một hằng con trỏ, mà nó chỉ tới một char. Giá trị mà nó chỉ tới lại không là một hằng; và sẽ không gây lỗi khi thay đổi kí tự được nó chỉ tới. Chỉ khi nào thay đổi chính con trỏ này thì sẽ gây lỗi (vì đã khai báo nó là hằng). Cũng có thể khai báo cả hai: con trỏ và giá trị mà nó chỉ tới đều là hằng.
6.Mảng
Đối với nhiều người lập trình, trong hầu hết các ngôn ngữ tương tự C, kiểu của một mảng nằm trong số phần tử mà nó chứa. Do vậy, khai báo sau đây có thể dùng trong các ngôn ngữ như Java hay C# để khai báo một mảng 10 giá trị số nguyên.
int[10] cat; /* THIS IS NOT VALID C CODE */
Nguyên lý trong cú pháp khai báo của C làm cho việc khai báo tương tự như việc sử dụng của biến. Thí dụ: một truy cập tới mảng này chẳng hạn như là cat[i], lúc khai khai báo lại cũng có cú pháp dạng:
int cat[10];