生活
指针赋值 、指针赋值给变量
2023-04-06 01:15  浏览:30

c语言 指针如何赋值

指针的赋值

int

*p;

int

a;

int

b[1];

p

=

a;

p

=

b;

指针的赋值,“=”的左操作数可以是*p,也可以是p。

当“=”的左操作数是*p时,改变的是p所指向的地址存放的数据;

当“=”的左操作数是p时,改变的是p所指向的地址。

数组的变量名b表示该数组的首地址,因此p=b;也是正确的.

同类型的指针赋值:

int

val1

=

18,val2

=

19;

int

*p1,*p2;

p1

=

val1;

p2

=

val2;

p1

=

p2;

//注意啦,p1指向了val2,而没有指向val1

怎么给一个指针赋值

1、打开visual studio,创建一个控制台应用程序,用于演示指针的使用、赋值和取值。

2、在Main方法中,添加一个unsafe代码段,C#语法中的指针都需要放在这个代码段中。

3、定义一个指针变量,与定义普通变量唯一的区别就是在变量的类型后面加上一个星号。例如:定义一个整型指针变量p,定义形式如下:

  int* p;

4、如果像普通变量一样直接赋值10,从代码效果可以看出,这样是不被允许的,编译器直接报错。

5、那么,另外定义一个普通变量,例如:int x = 100。

6、使用符号在变量前面,就表示获取这个变量的内存地址。这个时候就可以复制给指针了。例如:将整型变量x的地址赋值给指针p:

p = x。

7、在指针变量前面加一个星号,表示获取这个指针指向的地址中的值。例如想要输出指针p的值,就使用 *p 即可。

关于C语言中指针赋值的问题

你这样想说明你还没有真正理解内存和指针。int

a;表示编译器随机取出一个空闲的地址分配给a,不妨设为00000000,长度为sizeof(int),不同编译器可能不同。int

*p;也表示随机取出一个空闲的地址分配给p,不妨设为000000f0,长度一般为4个字节,则这四个字节现在存储的内容是不确定的,假设为00000ff0,那么*p表示地址00000ff0上的值。*p=a则把地址00000ff0的值变为a的值,显然如果该地址目前正在被某个进程使用,就有可能破坏该进程,因此这种方法是十分危险的。给指针赋值一般有两种方法,一种是将已经存在的变量的地址传递给指针,格式为:p=a;另一种是首先为指针申请指向的合法内存,C语言中用函数malloc(),然后给已申请的地址赋值,如*p=6。

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;的写法我哭了!

在C语言中能否直接给指针指向的数据赋值?为什么?

可以,但int *p;*p=7;这样不行。

因为“能直接给指针指向的数据”赋值,而这里的p还没有指向,所以不能赋值,这种指针有个名字叫“悬浮指针”,是不能给它赋值的。

这样才可以:

int a,*p=a;*p=7;

实际上就是使a等于了7。

扩展资料:

注意事项

也可以使用赋值运算符为指针变量赋值,但要保证两个指针变量的类型相同。

假设有如下变量定义:

int i,j,*p,*q;p=i;q=j;

这两句将变量i和j的地址分别赋值给指针变量p和q;

执行了q=p后,执行该条语句,指针变量p和q都指向了同一个变量i,因此指针变量p和q中存放的都是变量i的地址i。变量i此时并没有初始化,只为其分配了内存单元。

注意理解:q=p;和*q=*p

前者为指针变量q赋值,即将指针变量p中存放的某个变量的地址赋值给q。显然,赋值后,q和p就指向了同一个变量。

后者将p指向变量的赋值给q指向的变量。

例子:

p=i;

q=j;

i=2;

j=3;

指针变量赋值方式

指针变量赋值有三种方式:int i1、i2以及i3。

1、nt *p1=i1,*p2=i2; 用整形变量的地址给基类型为整形的指针变量赋值。

2、p1=i3; 给指针变量赋予变量的地址。

3、p1=p2; 通过指针变量给指针变量赋值。

存放地址的变量称为指针变量。指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。

扩展资料:

指针变量赋值三种方式实例:

1、方式一:int i1

i=3;

*i_pointer=3;                         

2、方式二:int i2

int i,j;

int *pointer_1,*pointer_2;

pointer_1 = i;

pointer_2 = j;

3、方式三:int i3

#include stdio.h

void main()

{   char *string = “I love China!”;

printf(“%sn”,string);

}

参考资料来源:百度百科:指针变量

关于指针赋值和指针赋值给变量的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发表评论
0评