c++ 질문 합니다

#include <iostream>
using namespace std;

int main() {
	for (int n = 0; n < 4; n++) {
		for (int p = -1; p < n; p++) {
			cout << "*";
		}
		cout << "\n";

	}
}

c++문제를 푸는데 저는이렇게 작성을 하였는데 답지에는 이렇게 나와있습니다.

#include <iostream>
using namespace std;
int main() {
    for (int n = 0; n < 4; n++) {
        for (int j = 0; j <= n; j++)
            cout << "*";
        cout << "\n";
    }
}

조건문이나 반복문같은걸 쓸때에 실행문이 2줄이상이면 {} 중괄호로 묶어주는걸로 아는데 여기는 왜 안묶어 줬는지 그리고

   cout << "*";
        cout << "\n";  //이거나
cout << "*" << "\n"; //이거랑 결과가 다르던데
왜다른지 궁금합니다

두 번째 for문은 바로 아래의 cout << "*“만 실행하고, 첫 번째 for문은 두 번째 for문을 포함하여 cout <<”\n"까지 실행합니다.