30/09/2018, 16:24

Thắc mắc char*?

Khai báo const char* t = s + strlen(s) nghĩa là sao?

#include <iostream>
#include <cstring>
using namespace std;

int main() {
	
	const char* s = "minh vu";
	cout << s << endl;
	
	const char* t = s + strlen(s); //Nghĩa là gì?
	cout << t << endl;
	
	return 0;
}
Gió viết 18:33 ngày 30/09/2018

t là con trỏ của “const char” gán = s+ len (s) . Tức là trỏ đến kí tự ‘\0’ kết thúc chuỗi cua s. Vậy khi in nó sẽ duyệt từng kí tự bắt đầu từ t, khi gặp ‘\0’ nó dừng lại. Nên sẽ không in ra gì.

Nguyễn Minh Dũng viết 18:26 ngày 30/09/2018

Chuẩn không cần chỉnh.

s đứng riêng một mình là con trỏ đến chuỗi s
khi mình + với một số, trong trường hợp này là chiều dài của s, thì tức là trỏ đến ký tự cuối của chuỗi, tức là ‘\0’

Bài liên quan
0