According to the documentation (https://solidity.readthedocs.io/en/v0.4.21/frequently-asked-questions.html#what-is-the-memory-keyword-what-does-it-do) function arguments are in memory by default however I've noticed a number of contracts where certain functions argument types (ie arrays, bytes) are declared with the memory keyword, eg:
constructor (bytes memory _zrxAssetData) public {}
Is there a reason for this other than being explicit?
Sep 6, 2018, 4:03 PM