为什么只可以赋0的?而又是为什么C++的指针变量可以赋一些常数?本质区别是什么?谢谢解答!
追答C++ 的指针变量也只能赋值0,那个NULL是一个宏名,其实也是0,指针值为0代表指针没有指向特定的空间,常用于链表中的表尾标记
如果赋值其他常数,代表指针可以任意指向某地址空间,编译阶段就要将这些不合法的操作过滤掉
虽然从旧版本C的概念而言,可以赋值一个整数,但是并不合法,或者说有逻辑错误,这一类错误
C++的编译程序可以捕获,但是旧版本C编译程序就不一定了
C语言中可以给指针变量赋值常数吗?
C语言中可以给指针变量赋值常数。1、申请了空间(在常量区),存放了字符串 2、在字符串尾加上了'\/0'3、返回地址,这里就是返回的地址赋值给了p 字符串常量"hello"出现在一个表达式中时,"hello"表达式使用的值就是这些字符所存储的地址(在常量区),而不是这些字符本身。所以,可以把字符串赋值给...
在C语言中能否直接给指针指向的数据赋值?为什么?
可以,但int *p;*p=7;这样不行。因为“能直接给指针指向的数据”赋值,而这里的p还没有指向,所以不能赋值,这种指针有个名字叫“悬浮指针”,是不能给它赋值的。这样才可以:int a,*p=&a;*p=7;实际上就是使a等于了7。
在C语言中能否直接给指针指向的数据赋值?为什么
可以直接给指针指向的数据赋值。因为*p操作是这样一种运算,返回p的值作为地址的那个空间的取值。存放地址的变量称为指针变量。指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址...
c语言中 能否用scanf给指针型变量赋值
应该为scanf("%d",(int)&p),因为你的p没有分配内存空间,不能直接往里面写入值,要和普通整型赋值一样加&
关于c语言指针的声明与赋值
在C语言中,指针是具有指向其他变量地址的能力的特殊类型变量。指针的声明与赋值是程序设计中常见且至关重要的操作。LZ提到的两种写法分别展示了指针声明与赋值的不同方式,它们在表面上看似等价,但实际用途与意义存在细微差异。首先,让我们回顾指针的声明与赋值的基本概念。声明一个指针变量,即是定义一个...
C语言中能不能将一个整数赋给一个指针变量?
在某种场合,把常量赋给指针变量是可以的,例如:int a=10,p ;printf("%d",&a);在以上代码输出a的地址值之后,譬如:1244996 以上程序可以改为:int a=10,*p;p=1244996;printf("%d",*p);输出10
c语言中能把指针变量赋值给指针变量嘛?
指针变量赋值给指针变量 是可以的。我想补充楼上的 1、就是这两个指针变量同时指向一个地方 内存 2、指向指针的指针的指针是二级指针。它指向指针。到看你怎么用了
C语言指针变量的赋值和做函数的参数
int x ;int * px=&x ; \/\/定义时赋值,也称初始化,注意这里的*是跟随int的,即变量px是int *类型变量! 实际上的赋值语句是px=&x ;int * py ;py=&x ; \/\/单独赋值,将py指向x*py=10 ; \/\/这里的*,是引用指针中的数据操作符,*跟随的变量必须是指针类型变量,否则会出错! *py就...
C语言中这样赋值:*pointer_1=100; 这样是否合法啊?谢谢
是可以的 如果前面定义过,直接这样也合法 好吧,前面我不知道你要做指针 指针相关有两个重要的运算符 1."*"一元运算符,名称为间接寻址运算符,当它作用于指针时,将访问指针所指向的对象.2."&"一元运算符,名称为取地址运算符,当它作用于指针变量时,将取出该变量的物理地址.指针定义 int *pointer_...
c语言 指针如何赋值
1、变量的指针就是变量的地址。存放变量地址的变量是指针变量。即在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个变量的地址或称为某变量的指针。2、为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”符号表示“指向”。3、定义指针变量.对...