Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在下面的代码中,I';我不知道他们的价值观是什么。我能在这里得到一些帮助吗? #包括 //用C程序演示指针到指针 int main() { int-var=789; //var的指针 int*ptr2; //ptr2的双指针 int**ptr1; //在ptr2中存储var的地址 ptr2=&var; //在ptr1中存储ptr2的地址 ptr1=&ptr2; //使用 //单指针和双指针 printf(“var的值=%d\n”,var); printf(“使用单指针的变量值=%d\n”,*ptr2); printf(“使用双指针的变量值=%d\n”,**ptr1); //下面是我对这些值感到困惑的地方。 //我知道其中一些是ptr1的地址, //但是我很困惑,ptr1的其他值是什么? printf(“此值是多少=%x\n”,*ptr1); printf(“这个值是多少=%x\n”,ptr1); printf(“此值是多少=%x\n”,&ptr1); printf(“此值是多少=%d\n”,*ptr1); printf(“这个值是多少=%d\n”,ptr1); printf(“此值是多少=%d\n”,&ptr1); 返回0; }_C - Fatal编程技术网

在下面的代码中,I';我不知道他们的价值观是什么。我能在这里得到一些帮助吗? #包括 //用C程序演示指针到指针 int main() { int-var=789; //var的指针 int*ptr2; //ptr2的双指针 int**ptr1; //在ptr2中存储var的地址 ptr2=&var; //在ptr1中存储ptr2的地址 ptr1=&ptr2; //使用 //单指针和双指针 printf(“var的值=%d\n”,var); printf(“使用单指针的变量值=%d\n”,*ptr2); printf(“使用双指针的变量值=%d\n”,**ptr1); //下面是我对这些值感到困惑的地方。 //我知道其中一些是ptr1的地址, //但是我很困惑,ptr1的其他值是什么? printf(“此值是多少=%x\n”,*ptr1); printf(“这个值是多少=%x\n”,ptr1); printf(“此值是多少=%x\n”,&ptr1); printf(“此值是多少=%d\n”,*ptr1); printf(“这个值是多少=%d\n”,ptr1); printf(“此值是多少=%d\n”,&ptr1); 返回0; }

在下面的代码中,I';我不知道他们的价值观是什么。我能在这里得到一些帮助吗? #包括 //用C程序演示指针到指针 int main() { int-var=789; //var的指针 int*ptr2; //ptr2的双指针 int**ptr1; //在ptr2中存储var的地址 ptr2=&var; //在ptr1中存储ptr2的地址 ptr1=&ptr2; //使用 //单指针和双指针 printf(“var的值=%d\n”,var); printf(“使用单指针的变量值=%d\n”,*ptr2); printf(“使用双指针的变量值=%d\n”,**ptr1); //下面是我对这些值感到困惑的地方。 //我知道其中一些是ptr1的地址, //但是我很困惑,ptr1的其他值是什么? printf(“此值是多少=%x\n”,*ptr1); printf(“这个值是多少=%x\n”,ptr1); printf(“此值是多少=%x\n”,&ptr1); printf(“此值是多少=%d\n”,*ptr1); printf(“这个值是多少=%d\n”,ptr1); printf(“此值是多少=%d\n”,&ptr1); 返回0; },c,C,在打印*ptr1的第一种情况下,您打印的是ptr1所指向的变量的值(在这种情况下是ptr2,它存储var的地址) 在打印ptr1的第二种情况下,您打印的是ptr1的值(在这种情况下是ptr2的地址) 在上次打印%ptr1的情况下,您正在打印ptr1的地址 正如@Raman在评论中所说:“&运算符取出地址,*运算符取消引用指针(从存储为值的地址中取出值)”。如果您想使用指针,请记住这一点 旁注:如果我没有弄错的话,格式说明符只会更改这些数字的显示方式,因此,例如,当使用%x时,该值将打印为无符号十

在打印
*ptr1
的第一种情况下,您打印的是
ptr1
所指向的变量的值(在这种情况下是
ptr2
,它存储
var
的地址)

在打印
ptr1
的第二种情况下,您打印的是
ptr1
的值(在这种情况下是
ptr2
的地址)

在上次打印
%ptr1
的情况下,您正在打印
ptr1
的地址

正如@Raman在评论中所说:“&运算符取出地址,*运算符取消引用指针(从存储为值的地址中取出值)”。如果您想使用指针,请记住这一点


旁注:如果我没有弄错的话,格式说明符只会更改这些数字的显示方式,因此,例如,当使用
%x
时,该值将打印为无符号十六进制整数,当使用
%d
时,该值将打印为有符号十进制整数。如果您想了解更多关于
printf()
的信息,可以阅读。

请通读。然后相应地问一个问题。我会的,谢谢你提供的信息。这是我第一次,我不知道如何正确格式化它。我很抱歉没有提前查找。我删除了我的评论,因为*运算符去掉的值是错误的。它取消了指针的引用(从存储为值的地址中取出值)好的,我现在就编辑它,谢谢@Raman!
#include <stdio.h> 

// C program to demonstrate pointer to pointer 
int main() 
{ 
    int var = 789; 

    // pointer for var 
    int *ptr2; 
    // double pointer for ptr2 
    int **ptr1; 
    // storing address of var in ptr2 
    ptr2 = &var; 
    // Storing address of ptr2 in ptr1 
    ptr1 = &ptr2; 

    // Displaying value of var using 
    // both single and double pointers 
    printf("Value of var = %d\n", var ); 
    printf("Value of var using single pointer = %d\n", *ptr2 ); 
    printf("Value of var using double pointer = %d\n", **ptr1); 

    // Below is where I am confused as to what the values are. 
    // I understand that some of them are the address of ptr1, 
    // but then I get confused as to what are the other values of ptr1?
    printf("what is this value = %x\n", *ptr1); 
    printf("what is this value = %x\n", ptr1); 
    printf("what is this value = %x\n", &ptr1); 
    printf("what is this value = %d\n", *ptr1); 
    printf("what is this value = %d\n", ptr1); 
    printf("what is this value = %d\n", &ptr1); 
    return 0; 
}