About block's argument


devowelizer = ^(id string, NSUInteger i, BOOL *stop) {
            NSRange yRange = [string rangeOfString:@"y" options:NSCaseInsensitiveSearch];
            if (yRange.location != NSNotFound) {
                *stop = YES;
                return;
            }

this is part of code, but i don’t understand of this expression.
*stop = YES;

stop is a pointer. there is BOOL pointer?
this is C’expression?
can you tell me more expression?

Means assign YES as the value for the stop pointer. Remove the asterisk and you should get an error.