char mening[] = "tjena pa dig hog";
此字符串包含16个字符。然后我使用函数adresss()
来查找该数组中随机字符的内存地址。函数adresss()
返回包含地址的指针。地址是此时0x7ffeefbff5f9
。
我现在需要知道地址指向的位置,例如它指向" t"在数组中的位置0,或者它可能指向" d"在第9位。我该怎么做?
编辑:
char* adresss(char mening[]){
//Lots of code going on here
return &mening[i];
}
int main(void){
char mening[] = "tjena pa dig hog";
char* ptr;
ptr = adresss(mening);
printf("%p\n", ptr);
这基本上就是我获得内存地址的方式。我想知道"我"是,在主要功能内只知道记忆地址。
答案 0 :(得分:1)
如果你有两个指针,都指向同一个数组(或指向数组末尾之外的指针),那么你可以相互减去它们。
例如:
char mening[] = "tjena pa dig hog";
char *pointer_to_mening = &mening[10]; // Pointer to the eleventh character
// Should print 10 (which is the index of the eleventh character)
printf("The distance is %zu\n", pointer_to_mening - mening);