c - 指针未给出正确的值

标签 c pointers

我正在为学校做一个项目,并试图学习如何使用指针。我试图让他们传递 X、Y 和 Z 的值。但是,我总是得到错误的值。 X 应该等于 1。Y 应该等于 2。Z 应该等于 3。

{
// Add the C statement(s) necessary to accomplish the task identified in the comments below


double A[3] = {2.718, 3.14, 2.718}; // declare an array A of 3 doubles

A[1] = 3.14;    // put the value 3.14 in the middle location of A

A[0] = 2.718;
A[2] = 2.718;   // put the value 2.718 in the first and last locations of A


printf("The first value of A is %f\n",A[0]);    // print the first value in A


printf("The last value of A is %f\n",A[2]); // print the last value in A


A[2] = A[0] + A[1]; // change the last value in A so that it is the sum of the first two and then print it


printf("The last value of A is %f\n", A[2]);
int B[4] = {10, 25, 50, 100};   // declare an array B of 4 integers with initial values 10, 25, 50, 100


int sum = B[0] + B[1] + B[2] + B[3];
printf("The sum of all four elements in B is %d\n",sum); // print the sum of all four elements in B


printf("Four elements in B in reverse order %d %d %d %d\n",B[3], B[2], B[1], B[0]); // print the four elements in B in reverse order (100, 50, 25, 10)


int X = 1;
int Y = 2;
int Z = 3;
printf("%d, %d, %d\n,",X,Y,Z);  // declare three integers, X Y and Z, assign them the values 1, 2 and 3 and print them


int *P1;    // declare three pointers to integers, P1, P2 and P3


int *P2;
int *P3;
P1 = &X;
P2 = &Y;    
P3 = &Z;    // point P1 to X, P2 to Y, and P3 to Z.


printf("%d, %d, %d\n",P1,P2,P3);    // print the values at X and Y and Z using the pointers P1 to P3
*P1 = 10;
printf("%d", P1);   // using P1 and not X, change the variable X's value from 1 to 10, then print it


return 0;
}

最佳答案

&XX的地址设置为P1。 但是,如果您想访问存储在该地址的值,那么您应该*P1

*P1 是什么意思?表示该地址存储的值。

P1=&X; //P1 takes address value of X;

如果您想在该地址打印值,那么

printf("Value of X %d\n",*P1);

关于c - 指针未给出正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35204866/

相关文章:

二维数组的正确下标排序

c - 使用摄像机源中的 ROI 作为 cvMatchTemplate 的模板

c++ - 在scanf中引用int

c - 如何修改字符指针

c - 使用指针 c 反转数组

c++ - 通过指针偏移访问结构变量值

c++ - Windows KMFD HelloWorld 驱动程序部署任务失败

c - 公式抛出错误 'called object is not a function'

c - 通过外部库传递变量

c - 尝试为 Struct 创建内存时在 C 中转储的段错误核心