Student or Learner
"The cell phone is too expensive for students to buy. " is right.
"The cell phone is so expensive for students to buy." is wrong.
I think they both are right, but they have a different meaning.
Who is right?
"Too expensive to buy" means that the students cannot afford to buy them as they don't have enough money.
"So expensive...." means that although the students can afford them, it's a lot of money for a student to pay because students don't usually have much money!