指针赋值表达式(一、 若有定义:int x, *pb;,则正确的的赋值赋值表达式是() A、pb=&x B、pb=x C、*pb=&x D、*pb=*x 二、)
本文目录
- 一、 若有定义:int x, *pb;,则正确的的赋值赋值表达式是() A、pb=&x B、pb=x C、*pb=&x D、*pb=*x 二、
- 已知数组A和指针p定义为:int A[20][10],*p;,要使p指向A的首元素,正确的赋值表达式是[ ]为什么选择D
- 赋值语句
- 设变量x的类型为整型指针变量pb的类型为整型, 则正确的赋值表达式是
- p为一指针变量,取p所指向单元的数据作为表达式的值,然后使p指向后一个单元
- 若x是整型变量,pb是基本类型为整型的指针变量,则正确的赋值表达式:pb=&x和*pb=X对不对*pb=X什么意思
一、 若有定义:int x, *pb;,则正确的的赋值赋值表达式是() A、pb=&x B、pb=x C、*pb=&x D、*pb=*x 二、
选择A选项,只有A选项符合指针变量的赋值。
选项解析:
选项A,指针变量需要赋值一个变量的地址,A选项中将x变量的地址赋值给指针变量pb,B选项不能将一个变量直接赋值给指针变量。
选项C,C选项中的赋值语法是错误的,正确的赋值语法应该是和A选项相同。D选项的错误类型和C选项的类似,所以综合以上分析,正确的答案为A。
扩展资料:
指针使用注意事项:
1、不允许把一个数赋予指针变量。
2、改变形参不代表改变实参。
3、函数调用中“(*指针变量名)”的两边的括号不可少,其中的“*”不应该理解为求值运算,在此处只是一种表示符号。要把“z=*pomax(x,y);”改成“z=(*pomax)(x,y);”。
C语言中指针初始化是指给所定义的指针变量赋初值。 指针变量在被创建后,如果不被赋值,它的缺省值是随机的,它的指向是不明确的,这样的指针形象地称为“野指针”。
野指针是很危险的,容易造成程序出错,且程序本身无法判断指针指向是否合法。指针变量初始化时避免野指针的方法: 可以在指针定义后, 赋值NULL空值。
定义指针变量的一般形式为:“类型说明符 *变量名”。
已知数组A和指针p定义为:int A[20][10],*p;,要使p指向A的首元素,正确的赋值表达式是[ ]为什么选择D
含有p=A是第一个元素的值,即A、C错误p=&A的地址给p,肯定正确p=A是正确的,因为二维数组可以看成多个一维数组,数组名即地址。A是每个的地址所以,D
赋值语句
赋值语句是由赋值表达式和分号组成的表达式语句。 它的一般形式是:变量=表达式。由于赋值符号“=”右边的表达式也可以是赋值表达式,下面的形式变量=(变量=表达式);被建立,从而形成嵌套的情况。展开后的一般形式是:变量=变量= ? =表达式;在变量描述中,允许连续给多个变量赋初值。以下解释有误:inta=b=c=5必须写成inta=5,b=5,C = 5;赋值语句允许连续赋值,赋值语句将某个值赋给变量的语句称为赋值语句。每种编程语言都有自己的赋值语句,赋值语句也有不同的类型。分配的“值”可以是数字、字符串和表达式。注意,很多语言使用“等号”(即“=”)作为赋值号,所以可能与通常的理解不同,使用时要注意。
设变量x的类型为整型指针变量pb的类型为整型, 则正确的赋值表达式是
第一种是对的,第二种是错的,因为始终pb是个指针,可以改成*pb=&x;将pb指向x的地址
p为一指针变量,取p所指向单元的数据作为表达式的值,然后使p指向后一个单元
首先指出这个提问有两点问题 1. 指针变量没有具体指出指针类型 当然不管是哪种类型写法都一样 假定为Type*;2. 取该数据作为表达式的值 ,这句话按字面意思是给表达式赋值,但通常表达式都不是左值不能进行赋值 所以我权当你的意思是把表达式expr的值赋给该指针所指向的值;那么简洁的写法就是 *p++ = expr;或者拆开来 *p = expr; p++; 本质一样~
若x是整型变量,pb是基本类型为整型的指针变量,则正确的赋值表达式:pb=&x和*pb=X对不对*pb=X什么意思
楼主你好~首先,从语法上来讲,两者都对。其实判断的依据很简单,只要赋值号两边数据类型相同,语法上便没有错误。pb的类型是int*,x的类型是int。&运算符的意思是取右值的地址,*运算符的意思是取右值地址所指向的内容的值,两者可以说是互为逆运算,相当于+和-的关系。pb=&x,两边的类型就是 int* = &(int) --》 int* = int**pb=x,两边的类型就是*(int*) = int --》 int = int所以从语法上来说两者都对。但是,单独的语句来说,只有前者能运行,后者要在一定条件下才能运行,条件是已经被赋值。首先,不管是int*还是char*,都是一个内存地址,而地址说白了就是一个整形数,比如大多数系统里就是一个32位无符号整形数。而赋值号运行出错的原因一般是赋值号右值没被赋值,也就是说赋值号右值一定要有值才能进行赋值。所以,对于pd=&x,因为x声明以后,就立即在内存中开辟了一段空间,所以pd是可以被赋值到x的地址的。而对于*pb=x,只有当x声明以后被赋值,这个赋值操作才能进行,不然赋值号右边没有值,会报错。
更多文章:
瘦客户机是什么意思(电脑垃圾;一个世界性新难题 瘦客户机 是什么意思)
2024年5月2日 06:10
正版windows手机下载(Windows Mobile手机操作系统那里有下载)
2024年7月3日 04:11
应用商店app下载安装最新版(OPPO手机怎么登录华为游戏)
2024年7月12日 20:20
西游奇缘的龙炎兽咋加点,我找了个答案,3力一体一耐的,但是西游奇缘里根本没有耐力呀?西游奇缘会出3吗出了会叫什么
2024年3月27日 10:40
2022梦幻科举答题器(梦幻西游科举答题器下载,最新梦幻西游科举答题器)
2024年8月24日 15:25
吉里吉里模拟器(吉里吉里模拟器游戏删了,照片还在,进度会保存吗)
2024年6月30日 22:12