2012-07-22 11 views
5

Có thể trùng lặp là gì:
Difference between format specifiers %i and %d in printfsự khác biệt giữa printf ("% i") và printf ("% d")

tôi chỉ kiểm tra các tài liệu tham khảo, nó nói cả hai chúng biểu thị số nguyên đã ký. Tôi nghĩ rằng phải có một số khác biệt

+0

Không ........... – Mysticial

+0

Có lẽ một chút lịch sử ở đó; Tôi không biết. – chris

+1

có SO trùng lặp được đề cập bởi @ paulsm4. như được trích dẫn từ tài liệu chuẩn C99, mục 7.19.6.1: "8. Các chỉ số chuyển đổi và ý nghĩa của chúng là: d, i Đối số int được chuyển đổi sang chữ số thập phân theo kiểu [-] dddd. số lượng chữ số tối thiểu xuất hiện, nếu giá trị được chuyển đổi có thể được biểu thị bằng ít chữ số hơn, nó được mở rộng với số 0 ở đầu. Độ chính xác mặc định là 1. Kết quả của việc chuyển đổi giá trị bằng 0 với độ chính xác bằng không là ký tự. " nói cách khác, chúng được đối xử như nhau. –

Trả lời

5

Không có sự khác biệt.

Từ tài liệu chuẩn C99, phần 7.19.6.1:

d, i

Đối số int được chuyển thành số thập phân có chữ ký theo phong cách [-] dddd. Độ chính xác xác định số chữ số tối thiểu để xuất hiện; nếu giá trị đang được chuyển đổi có thể được thể hiện bằng ít chữ số hơn, thì đó là được mở rộng với số 0 đứng đầu. Độ chính xác mặc định là 1. Kết quả của chuyển đổi giá trị bằng 0 với độ chính xác bằng không là không có ký tự