pragma solidity ^0.4.24; contract MemoryAndStorage { uint[20] public arr; // storage value by default function startChange() public { firstChange(arr); secondChange(arr); } function firstChange(uint[20] storage x) internal { x[0] = 4; } function secondChange(uint[20] x) internal pure{ // argument in function is a memory value by x[0] = 3; // by default } }