答案都是A 但本人曾经见过这样的赋值所以不服气就上机亲自验证了一把
#include "stdio.h"
main()
{
int i ,j;
int a[3][2]={1,2,3,3,4};
int *p;
p=a;
for(i=0 ; i<3 ;i++)
for(j=0 ; j<2 ; j++)
printf("%d"*p++);
}
编译无错 运行结果是 123340
这是为什么???为什么都说p=a 赋值不对???
A。p的类型是int *,a的类型是int (*)[10],类型不符,不能赋值。将确定的数值赋给变量的语句叫做赋值语句。各程序设计语言有自己的赋值语句,赋值语句也有不同的类型。所赋“值”可以是数字,也可以是字符串和表达式。
扩展资料:
注意很多语言都使用“等于号”(即“=”)来作为赋值号,所以可能和和平时的理解不同,在使用的时候应予以注意。
1、VB中的赋值格式
例如,给变量a赋值一个数为12,则格式为:a = 12 [注意:变量(即a)只能是一字母,而赋予的值可以是一个式子,当它是式子时,a的值就是这个式子的结果。
2、赋值的开拓
设(F,φ)是一个赋值域,K是F的一个扩域,若K有一个赋值ψ,使得对每个α∈F,都有ψ(α)=φ(α),则ψ称为φ在K上的开拓。关于赋值开拓有存在性定理:F的赋值在F的任何一个扩域上都至少有一个开拓。
...a[4][10],*p,*q[4];且0<=i<4,则错误的赋值是: A)p=a B)q[i]=a...
A。p的类型是int *,a的类型是int (*)[10],类型不符,不能赋值。将确定的数值赋给变量的语句叫做赋值语句。各程序设计语言有自己的赋值语句,赋值语句也有不同的类型。所赋“值”可以是数字,也可以是字符串和表达式。
若有定义语句: int a[4][10],*P,*q[4];且0≤i<4,则错误的赋值是...
【答案】:A 数组名是一个存放一个数组首地址的值,是一个地址常量。而p=a不是合法的,因为p和a的基本类型不同。
int a[4][10],*p,*q[4];,0<=i<=4 1.p=a 2q[i]=ai] 3.p=a[i] 4.p=&...
答案是1,因为P也是一个一维指针,所以根据类型匹配原理只能对应一维a[i]而不能对应一个二维地址,否则需要强制转换,2,q[i]其实也相当于一个int类型指针所以可以对应a[i]3,p是一维指针所以可以对应a[i]一维数组 4,&a[2][1]是a二维数组的第三维第二个元素的地址。
C语言指针数组的问题 刚刚有点错误
int a[4][10],*p,*q[4];a的类型:int [4][10],a是一个有4个元素的一维数组,每个元素又是有10个int型数据的一维数组 本质上 C语言是没有多维数组 的!请楼主记住。所以a的首元素是a[0],a是首元素a[0]的地址,即a = &a[0]千万不要认为a是首元素a[0][0]的地址,而写...
计算机国二c语言,考试内容是什么?有哪些知识点?说详细点!
(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是( )。A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1](28)有以下程序# include <stdio.h># include <string.h>main(){ char str[][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",strlen(p))...
...则不正确的赋值语句是 int b[4][6],*p,*q[4];
首先,你要知道*q[4]中的q是一个数组的指针,也就是说q是指向一个数组,并且这个数组中有4个元素的。我们看一下b[4][6],这是一个二维数组,其实我们可以把他拆分一下,也就是b是一个含有4个元素的数组,而这个数组中的4个元素都是一个数组,后面的这4个数组中都有6个元素,这样你懂的。
求2010年3月计算机二级C语言笔试复习资料
printf("%d,%d,%d,%d\\n",m,n,*p,*q); } 程序运行后的输出结果是 A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2 A B C D 27. (27)若有定义语句: int a[4][10],*p,*q[4];且0<=i<4,则错误的赋值是 A)p=a B)q[i]=a[i] C)p=a[i] D)p=&a[2][1] A B C ...
7. 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是...
n是整数,p是整数指针,q是双重指针。A:p=1 属于将地址1赋给p,非法。B:*q=2 这里*q相当于一个整数指针,问题同上,非法。C:q=p 相当于把p的地址赋给q,不能说错,但是不同维数的指针互相赋值,容易出错。以上三种都是编译没有问题。D比较符合规范而已。
若有以下定义和语句 int a=4,b=3,*p,*q,*w; p=&a;q=&b;w=q;q=NULL...
这里的“错误”是指语法上的错误。*q=0;程序会crash。其他都是合法的赋值语句。(不是相等哦)。
p=a 为什么是错误的
a是2维数组首地址,即双重指针常量 p是一维指针,所以不行。非要用的话,可以强制转换 p = (int *)a;