30/09/2018, 20:22
hỏi về chuỗi char z[10]
#include <stdio.h>
#include <stdlib.h>
int main()
{
char z[10];
printf("nhap z:");
scanf("%s", z);
printf("gia tri cua z la: %s
", z);
printf("gia tri thu 12 cua z la: %c
", z[11]);
return 0;
}
câu hỏi 1: em muốn hỏi cái phần [10] trong char z[10] nghĩa là gì? mới đầu em nghĩ nó là số phần tử trong mảng ký tự z. Nhưng như vậy khi chạy code em nhập khoảng mười mấy ký tự cho z nó vẫn nhận, vậy là em nghĩ sai rồi
câu hỏi 2: cho phần ở dưới: tại sao không khai báo cho y[10] như vậy được?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char y[10] = 'abcdefghij';
printf ("%c", y[2]);
}
xin mọi người giúp dùm
Bài liên quan
C luôn có 1 kí tự
'\0
dùng để kết thúc xâu, vì thể nếu 1 mảng char n phần tử thì chỉ chứa tối đa n-1 kí tự thôi (mang ý nghĩa là xâu trong c, trừ Th dùng mảng với mục đích khác thì nó như 1 mảng bình thường n ptu)Y[10] là nằm ngoài vùng nhớ khai báo. Bạn không được truy cập ngoài chỉ số của mạng
'a'
còn dấu nháy kép (") là dùng cho chuỗi ký tự. Bạn khởi tạo chuỗi mà dùng dấu nháy đơn là sai, mà phải dúng dấu nháy kép.nếu vậy khi khai báo 2 cách dưới đây là như nhau hả bạn @Pham_Van_Hai
Khác nhau bạn ah.
string
trong C:string
là một mảng các ký tự (kiểuchar
) kết thúc bằng ký tự'\0'
.\0
này ở cuỗi thì nó mới tương đương nhau.\0
ở cuối.tks bạn nhiều, mình mới học nên còn mông lung lắm