玩转c语言中的指针
Playing with pointer in c language
能否在c语言中用指针指向内存中的特定位置?
然后从另一个文件(另一个程序)修改它并从任何地方查看它。
喜欢:
修改:
#include<stdio.h>
void main(){
int *p;
p= 12345678;
scanf("%d",p);
}
正在查看:
#include<stdio.h>
void main(){
int *p;
p= 12345678;
printf("%d", *p);
}
没有。您操作系统中的每个进程都有自己的地址 space.
进程可以使用操作系统提供的通道进行通信。
如果您有兴趣了解更多信息,请查看 IPC,也称为进程间通信。
const volatile 指针(它将指向一些内存)怎么样?如果我没记错的话,它会指向一些内存,它在第一个程序中不会改变(你也不会被允许修改这个内存)但是那个内存可以被另一个program/process等修改
编辑:
澄清一下,如果我们使用 const volatile 指针,它会做两件事。
- 在程序中它不允许我们在初始化后改变它的值
- 更重要的 volatile 关键字将不允许某些编译器对读数进行优化,并且每次程序访问时都会从内存中重新加载。这大大减少了可能的优化。然而,当一个对象的状态可以意外改变时,这是确保可预测的程序性能的唯一方法。
能否在c语言中用指针指向内存中的特定位置? 然后从另一个文件(另一个程序)修改它并从任何地方查看它。 喜欢:
修改:
#include<stdio.h>
void main(){
int *p;
p= 12345678;
scanf("%d",p);
}
正在查看:
#include<stdio.h>
void main(){
int *p;
p= 12345678;
printf("%d", *p);
}
没有。您操作系统中的每个进程都有自己的地址 space.
进程可以使用操作系统提供的通道进行通信。
如果您有兴趣了解更多信息,请查看 IPC,也称为进程间通信。
const volatile 指针(它将指向一些内存)怎么样?如果我没记错的话,它会指向一些内存,它在第一个程序中不会改变(你也不会被允许修改这个内存)但是那个内存可以被另一个program/process等修改
编辑:
澄清一下,如果我们使用 const volatile 指针,它会做两件事。
- 在程序中它不允许我们在初始化后改变它的值
- 更重要的 volatile 关键字将不允许某些编译器对读数进行优化,并且每次程序访问时都会从内存中重新加载。这大大减少了可能的优化。然而,当一个对象的状态可以意外改变时,这是确保可预测的程序性能的唯一方法。