When you define something you describe it. This mainly applies to functions, methods, classes, structs, though it can also apply to variables. When you declare something, you're basically saying, "Look here, I've got [X] which is of type [Y], so be forewarned!"
Example:
Declaration:
Code:
int i;
Definition:
Code:
i = 240;
See, when you declare something, you're kind of giving the compiler a fore-warning about that type. When you define something, you're actually giving it a value, and defining it.