So you want your C to store a value in memory address 1000 and you want your C# program to be able to read memory address 1000 and see the same value?
Unfortunately (for you) it doesn't work that way - each exe has it's own address space, so address 1000 in each one will map to a different physical address, and you shouldn't be mucking around down at that level.
There are several inter process communication (IPC) methods you could look at to achieve what you want (like shared memory)
edit
David Heffernan correctly points out that ReadProcessMemory
in the comments does allow you to map an area of memory from one process to another. I must admit I didn't know about it! There is still the issue that you can't just use memory address 1000 - you somehow have to get a valid address from one side to the other, so I'm not really sure how useful it is for the general case.
This may give you some more hints: sharing memory between two applications