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,但为什么单个指针不能?
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)
为什么会这样
#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和指针之间的最大区别?
编辑:此代码仅代表测试目的