Yes, and yes.
I'm puzzled that you're asking this here when you could quite easily test for yourself... Part of the process of coding is trying things out. Have faith that this process usually does not break your computer.
function [output] = AnswerMyQuestion( input )
output = input;
result = AnswerMyQuestion( struct('astring', 'value', 'anumber', 1) ) );
result = AnswerMyQuestion( cell(3,3) );