指针赋值表达式(已知数组A和指针p定义为:int A[20][10],*p;,要使p指向A的首元素,正确的赋值表达式是[ ]为什么选择D)
![指针赋值表达式(已知数组A和指针p定义为:int A[20][10],*p;,要使p指向A的首元素,正确的赋值表达式是[ ]为什么选择D)](/static/images/content_image/infant-3109433_1920.jpg)
本文目录
- 已知数组A和指针p定义为:int A[20][10],*p;,要使p指向A的首元素,正确的赋值表达式是[ ]为什么选择D
- 设变量x的类型为整型指针变量pb的类型为整型, 则正确的赋值表达式是
- 赋值语句
- 一、 若有定义:int x, *pb;,则正确的的赋值赋值表达式是() A、pb=&x B、pb=x C、*pb=&x D、*pb=*x 二、
- p为一指针变量,取p所指向单元的数据作为表达式的值,然后使p指向后一个单元
- 若x是整型变量,pb是基本类型为整型的指针变量,则正确的赋值表达式:pb=&x和*pb=X对不对*pb=X什么意思
已知数组A和指针p定义为:int A[20][10],*p;,要使p指向A的首元素,正确的赋值表达式是[ ]为什么选择D
含有p=A是第一个元素的值,即A、C错误
p=&A的地址给p,肯定正确
p=A是正确的,因为二维数组可以看成多个一维数组,数组名即地址。
A是每个的地址
所以,D
设变量x的类型为整型指针变量pb的类型为整型, 则正确的赋值表达式是
第一种是对的,第二种是错的,因为始终pb是个指针,可以改成*pb
=
&x;将pb指向x的地址
赋值语句
赋值语句是由赋值表达式和分号组成的表达式语句。 它的一般形式是:变量=表达式。由于赋值符号“=”右边的表达式也可以是赋值表达式,下面的形式变量=(变量=表达式);被建立,从而形成嵌套的情况。展开后的一般形式是:变量=变量= ? =表达式;在变量描述中,允许连续给多个变量赋初值。以下解释有误:inta=b=c=5必须写成inta=5,b=5,C = 5;赋值语句允许连续赋值,赋值语句将某个值赋给变量的语句称为赋值语句。每种编程语言都有自己的赋值语句,赋值语句也有不同的类型。分配的“值”可以是数字、字符串和表达式。注意,很多语言使用“等号”(即“=”)作为赋值号,所以可能与通常的理解不同,使用时要注意。
一、 若有定义: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空值。
定义指针变量的一般形式为:“类型说明符 *变量名”。
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声明以后被赋值,这个赋值操作才能进行,不然赋值号右边没有值,会报错。
![指针赋值表达式(已知数组A和指针p定义为:int A[20][10],*p;,要使p指向A的首元素,正确的赋值表达式是[ ]为什么选择D)](/static/images/content_image/hd-wallpaper-83761_1280.jpg)
更多文章:
form表单制作(为什么制作的form表单会在网页显示中多出一行)
2026年10月11日 09:10
teammate(teammate,company,partner)
2026年10月11日 06:10
javascript arraybuffer(javascript可以把base64编码转换成二进制代码吗求示例代码!)
2026年10月11日 04:00
text函数公式(excel中round和text函数的区别是什么)
2026年10月11日 03:50
google chrome打不开(chrome浏览器打不开怎么回事 浏览器打不开的处理方法)
2026年10月11日 02:00
websocket整合springboot(Springboot整合Websocket遇到的坑)
2026年10月11日 01:40
drawerlayout(android 怎样让drawerlayout设置的侧滑菜单的内容充满屏幕)
2026年10月10日 19:20
xor四位数怎么运算(单片机怎样用C语言实现4个数字间的异或)
2026年10月10日 17:50




