指针赋值(指针赋值为null)
怎样向指针变量所指向的变量赋值。
可以直接通过对指针赋值以达到对它所指向的变量赋值。
#includeiostream.h
void
main()
{
int
a;
int
*p;
p=a;
*p=3;
coutaendl;
}
a是p指向的变量,*p=3;//指针p指向的值为3,a的值也变为3
c语言指针赋值问题
请分清“指针本身的值”和“指针指向的地址中的值”这两者的区别。指针本身的值就是地址。
int?a?=?2;
int?*p?=?a;
//p?=?100;?//试图将指针本身的值修改为100,即令指针p指向内存地址100的位置,这是未定义行为
*p?=?100;?//将指针p指向的地址中的值修改为100,即将a的值修改为100
c语言怎么样把指针的值赋值给另一个指针
1. C语言 怎么把指针的值 赋给另一个数组
循环赋值, 或者直接strcpy。 因为这里是字符串。
比如
#includestdio.h
int main()
{
int i=0;
char a[100];
scanf("%s",a);
fun(a);
return 0;
}
int fun(int *p)
{
int i,b,c,d;
char j[100];
strcpy(j, p);
用memcpy也可以。
memcpy(j, p, sizeof(j));
我想在这之后 让j【100】接收到上面那个数组的值 并输出我应该怎么写用指针!
return 0;
}
2. C语言 怎么把指针的值 赋给另一个数组
循环赋值, 或者直接strcpy。
因为这里是字符串。 比如 #include int main(){int i=0;char a[100];scanf("%s",a);fun(a);return 0;}int fun(int *p){int i,b,c,d;char j[100];strcpy(j, p);用memcpy也可以。
memcpy(j, p, sizeof(j));我想在这之后 让j【100】接收到上面那个数组的值 并输出我应该怎么写用指针!return 0;}。
3. C++如何将一个指针的值赋值给另一个指针,并且两个指针不共用一个
首先指针全名叫
所以他本身是变量,既然是变量就要有值,而他的值就是指针指向的地址(在32位系统下是一个无符号的32位整数),
所以可以这么说任何两个指针都不共用一个地址,但是可以指向同一个地址!
像这样
int nNum = 10;
int* p1 = nNum;
int* p2 = nNum;
p1和p2指向的地址相同,但是p1和p2的地址却是不同的
如果我理解的没错的话你想说的是两个指针指向同一个地址,但是这是不可能的!
既然是指针值赋值给另一个指针,那么一定是指向同一地址的,
算了,看到*c=*d;的写法我哭了!
指针的赋值问题
指针是个存着地址的变量,因为我们每定义一个变量,内存就会给他分配空间,那么每个变量必须会有一个存储他的地方,我们称为地址,他指向谁,里面就存着谁的地址。如题*p=a;
此时p里面存的是a的地址(记住这一点),还可以用取地址符获取变量的地址,如a;表示的是a的地址。变量的值可以用*号获取。* 后面加一个地址,表示这个地址里面的数值(也记住,很重要)
定义3个原则
A * 后面只能跟地址, *p 表示参数的值
B 后面只能跟变量。 a 表示参数a的地址
C ’=‘ 是赋值,为了程序的稳定,我们默认只允许同类型的参数进行赋值(若不同类也会赋值,但是执行结果会出错)
就是说,只允许,指针地址赋值给指针地址,变量值赋值给变量值。了解这些,就可以分析了:
int *p,*q; q=p; //对的,因为p,q都是指针,可以相互赋值 依据 A,C原则
int a,*p,*q; p=q=a;//对的,p,q指针表示地址,根据B原则,a也是地址,因此可以进行赋值
int a,*p,*q; q=a; p=*q;//错的,q =a 是对的,但是p =*q 是错的,根据原则A,C,*q是值,p是地址,与原则C冲突
int a=20,*p; *p=a;// 对的,他们都表示值
int a=b=0,*p; p=a; b=*p;//对的,p = a 原则BC ,b = *p 原则AC
int a=20,*p,*q=a; *p=*q;// 对的,初始时q得到a的地址,*p和*q都是表示值,符合原则C
int a=20,*p,*q=a; p=q;//对的,原则BC
int p,*q; q=p;// 对的,原则BC
祝你进步,指针自己琢磨下,会明白的!
指针数组如何赋值
如果没有描述错误的话,指针数组用法如下:
int * p[3];
int i;
int a,b,c;
p[0]=a;
p[1]=b;
p[2]=c;
但根据我的经验,通常情况下没有必要使用指针数组的,而是使用指向数组的指针,所以怀疑题主描述错误。
如果是指向数组的指针的话,对数组初始化如下 :
int *p;
int a[3];
int i;
p=a[0];
for(i=0;i3;i++){
*p++=0;
}
如何给指针的指针赋值,求救
我刚好遇到了关于指针的问题,如果我说的有不对的地方,请指正,
你这样问应该是初学者,对于指针,就是地址,前面那个星号是用来提取指针所包含的值的,就是提取那个地址对应的值。然后对于指针赋值,
首先如果是定义一个空指针,如int *p = nullptr; 那么对他赋值的时候不能直接*p = 9;因为p是一个指针,他只是一个地址,你不能对一个地址进行赋值,此时如果有一个整型变量,int a = 3;那么,可以令指针等于a的地址,即p = a; 即对指针进行了赋值,或者在定义指针的时候直接对他进行赋值,如int *p1 = a;