There are two things in play here. First, as Eric pointed out, you're passing the address of name, not the contents (although you would use %p instead of %d to print that properly). But even if you cast and dereferenced the argument so as to interpret the contents of that array as an integral type (which might run into alignment issues: ints aren't necessarily allowed to start at any point in memory. They generally need to start at a word boundary), it wouldn't necessarily print the same as the other:
Some CPUs store the bytes of a multibyte object out of order. This is called the endianness of the representation. Intel chips are little-endian, where the least significant byte is stored at the front (as are most other modern systems. I think Apple used to use big-endian chips, but I'm not sure). So (for a 32-bit unsigned int), 0x00112233 would actually be stored as { 0x33, 0x22, 0x11, 0x00 }.