
正文
c语言指针变量能赋什么值,c语言指针详细讲解
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言中可以给指针变量赋值常数吗?
1、是可以的。我想补充楼上的 就是这两个指针变量同时指向一个地方 内存 指向指针的指针的指针是二级指针。它指向指针。
2、可以,但int *p;*p=7;这样不行。因为“能直接给指针指向的数据”赋值,而这里的p还没有指向,所以不能赋值,这种指针有个名字叫“悬浮指针”,是不能给它赋值的。
3、可以直接给指针指向的数据赋值。因为*p操作是这样一种运算,返回p的值作为地址的那个空间的取值。存放地址的变量称为指针变量。
相关问答
Q1: c语言中,可以将什么值赋值给指针变量
int a;int *p; p指向储存整形数据的空间。
C语言怎么将变量里面的值赋给指针,方法如下:比如 int a;int *p; p指向储存整形数据的空间。p=保证p与&a为同一类型。赋值 :将某一数值赋给某个变量的过程,称为赋值。
可以的,数组名就是数组第一个元素的指针,所以可以赋值给相同类型的指针变量,此时,数组名和这个指针都指向这个数组的开头。
可以,但int *p;*p=7;这样不行。因为“能直接给指针指向的数据”赋值,而这里的p还没有指向,所以不能赋值,这种指针有个名字叫“悬浮指针”,是不能给它赋值的。
Q2: c语言中定义指针变量时,赋值和赋初值有什么区别?
1、赋初值一般而言是指逻辑意义上的初始化。在C语言中,由于初始化的语法是“=”后加初值,所以“赋初值”基本上就是指语法上的初始化。不过随着语言的发展,“赋初值”的意义发生了扩大。
2、变量或者常量需要先定义后使用,定义的时候,同时指定一个值,那就叫定义并初始化了该变量或者常量。赋初值之后, 常量值不可改变,变量当然可以改变,从常量和变量的字面意思就可以理解。int n1=n2=10;这种情况也是赋初值。
3、对于这两个没有太大差别。第一个是变量的初始化,这样只要在过程中不改变,那么a就是0了。而第二个,是定义了一个变量,将0赋给这个a。
Q3: C语言指针的赋值问题
因为“能直接给指针指向的数据”赋值,而这里的p还没有指向,所以不能赋值,这种指针有个名字叫“悬浮指针”,是不能给它赋值的。这样才可以:int a,*p=*p=7;实际上就是使a等于了7。
变量的指针就是变量的地址。存放变量地址的变量是指针变量。即在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个变量的地址或称为某变量的指针。
请分清“指针本身的值”和“指针指向的地址中的值”这两者的区别。指针本身的值就是地址。
Q4: C语言指针变量的赋值和做函数的参数
在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。
变量的指针就是变量的地址。存放变量地址的变量是指针变量。即在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个变量的地址或称为某变量的指针。
, 变量作为参数,这是单向值传递。即将数据传给被调函数后,与调用函数就不相关了,必须通过函数值返回操作结果。
一般变量作为形参,是不能改变实参值的哦,要返回数据就用return;指针指向真实的地址,不重新分配内存,所以调用函数后,如果函数里改变了指针指向的值,那这个数就真的变了。调用就是用函数名,还要传送相应的调用参数。
改变的是u,v 而不说*u *v 如果改成 char temp;temp=*u;u=*v;v=temp;这样就可以了。记住两点 要改变type型的值 一个是 传的需要是type*的参数p 另一个 函数中 改变的要是*p的值。
Q5: 在C语言中能否直接给指针指向的数据赋值?为什么?
可以,但int *p;*p=7;这样不行。因为“能直接给指针指向的数据”赋值,而这里的p还没有指向,所以不能赋值,这种指针有个名字叫“悬浮指针”,是不能给它赋值的。
肯定能。但你编写的:int p;*p=7;这样的程序不对。因为“能直接给指针指向的数据”赋值,而你编写的小程序里的p还没有指向,所以不能赋值;这个指针叫“悬浮指针”,也叫野指针,它不能被赋值的。
p为指针,地址是未知的,如果直接赋值 p=a;这样编译可以通过,但是会产生警告,p的地址是随机分配的,这样对未知的地址赋值很危险,可能会覆盖掉某些重要数据,所以避免这种危险,在定义指针时注意初始化,也就是赋值。
关于c语言指针变量能赋什么值和c语言指针详细讲解的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








