system("cmd /c 绝对路径")
比如你要访问c:\dos\tc\123.bat
就是system("cmd /c c:\\dos\\tc\\123.bat")
windows下文件路径是用\分隔的,比如C:\Windows\System32\就是一个标准的windows路径。
在C语言中,文件路径会被写作字符串形式,但是由于C语言的字符串规则中,\字符是转义字符的引导,所以直接写
"C:\Windows\System32\"
会出错。而字符'\\'才是表示\。
于是在写路径的时候,就必须是
"C:\\Windows\\System32\\"
即,写成单独的\的,是windows的标准形式,而写成\\的,才是C语言中用到的形式。
您说的应该是对的,用VC的话前面那条语句是编译不通过的。
补充啊,谈点个人看法:
虽然在VC上面编译不能通过(unsigned int *)0x100000 = 0x3322语句,但是个人认为这条语句与*((unsigned int *)0x100000) = 0x3322所表达的含义是不同的。前者是对指针赋值,后者是对指针所指向的对象赋值。
1. 从变量的定义出发,变量是地址空间的别名,也即例如unsigned int *a表示给一个存储空间命名为a同时这个空间是一个地址指针,假设这个存储空间的地址为0x100000,那么此时a即是地址0x100000单元的别名,对a赋值即是对0x100000所标识的空间赋值。因此(unsigned int *)0x100000 = 0x3322赋值的空间是0x100000。
2. 对于*((unsigned int *)0x100000) = 0x3322语句,也即相当于*a = 0x3322,也即是a所指向的空间被赋值。也即是先取出0x100000地址空间的值作为地址找到对应的存储空间然后存储0x3322。
个人的一点浅见,不知道是否符合真实情况。