使用内存地址从指针打印字符数组(字符串)C
此字符串包含16个字符。然后,我使用函数使用内存地址从指针打印字符数组(字符串)C,c,C,此字符串包含16个字符。然后,我使用函数adress()查找该数组中随机字符的内存地址。函数adress()返回包含地址的指针。此时地址为0x7FFEEFBF5F9。 我现在需要知道地址指向什么位置,例如它指向数组中位置0处的“t”,或者它指向位置9处的“d”。我该怎么做 编辑: 这就是我获取内存地址的基本方法。我想知道“I”是什么,在主函数中只知道内存地址 如果有两个指针,都指向同一个数组(或指向数组末尾以外的一个),则可以将它们相减 例如: char* adresss(char mening
adress()
查找该数组中随机字符的内存地址。函数adress()
返回包含地址的指针。此时地址为0x7FFEEFBF5F9
。
我现在需要知道地址指向什么位置,例如它指向数组中位置0处的“t”,或者它指向位置9处的“d”。我该怎么做
编辑:
这就是我获取内存地址的基本方法。我想知道“I”是什么,在主函数中只知道内存地址 如果有两个指针,都指向同一个数组(或指向数组末尾以外的一个),则可以将它们相减 例如:
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);
函数的返回方式如下:return&mening[i];这将给出mening[]中位置i的地址我想再次使用内存地址查找i当数组
mening
的元素数为16时,请记住最后一个(索引15
)是字符串终止符。@Someprogrammerdude.:数组的大小为17
,索引15的大小为g
。我想从给定的adress@coderredoc详细信息…:)%zu是什么意思?@J.Doe“%u”
是打印一个无符号int
。z
修饰符用于size\u t
参数。这意味着“%zu”
将size\u t
参数打印为无符号整数。有关更多详细信息,请参见例如。
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);
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);