指针赋值(指针赋值为null)

http://www.itjxue.com  2023-01-25 20:24  来源:未知  点击次数: 

怎样向指针变量所指向的变量赋值。

可以直接通过对指针赋值以达到对它所指向的变量赋值。

#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;

(责任编辑:IT教学网)

更多