小编use*_*058的帖子

为什么我应该使用双指针变量来接收另一个指针的地址(&ptr1)

int num = 45,*ptr1,*ptr2;
ptr1=#
ptr2=&ptr1;
printf("%d\n",*ptr1);
Run Code Online (Sandbox Code Playgroud)

我一直在考虑这个问题,但找不到理解它的方法,为什么&ptr1不能ptr2在第3行分配,&ptr1是指针的地址,这个地址与其他地址没有区别,如地址比如说整数

int a=1;
ptr2=&a;
Run Code Online (Sandbox Code Playgroud)

这意味着我可以为指针分配一个整数的地址,但不能指向指针的指针地址,这两个"地址"之间的差异是否可能使它们不同?公共变量的地址可以分配给单个指针,但是指针的地址不能分配给单个指针?

我知道正确的方法是使用双指针来声明ptr2,但为什么单个指针不能?

c pointers pointer-to-pointer

6
推荐指数
1
解决办法
3095
查看次数

为什么数组接收的值多于声明要保存的值

int main(void)
{
    char name1[5];
    int count;
    printf("Please enter names\n");
    count = scanf("%s",name1);
    printf("You entered name1 %s\n",name1);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我输入超过5个字符时,它打印出我输入的字符,它超过5,但char数组声明为:

char name1[5];
Run Code Online (Sandbox Code Playgroud)

为什么会这样

c arrays undefined-behavior

4
推荐指数
2
解决办法
227
查看次数

C中int变量和指针变量之间的差异

#include <stdio.h>

int j;
int *ptr;

int main(void)
{
    j = 13232323;//adress I want to assign
    ptr = j;//assign the adress to the pointer
    printf("%d",ptr);
}
Run Code Online (Sandbox Code Playgroud)

OUTPUT:13232323

我是否错误地将地址直接分配给指针?指针不过是一个变量包含地址的形式价值,所以我构建了一个地址,然后将其分配给指针,它的作品,因为它应该是,但我不能构建包含字符ABCDEF地址,那么,什么是int和指针之间的最大区别?

编辑:此代码仅代表测试目的

c pointers

1
推荐指数
1
解决办法
1717
查看次数