c语言的字符数组问题。。已知 :char s[100] ; int i=10; 则在下列引用数组元素的语句中,错误的表示是:

A、s[i+10] B、*(s+i) C、*(i+s) D、*((s++)+i)

应该选哪个?顺便解释一下~~谢谢~

最后一个D选项是错误的,s++是一个表达式,不能对表达式进行求指针运算,其他3个答案都是正确的!!追问

在2维数组中有 pi=a *(pi[i]+j)表示a[i][j] pi[i]+j不算是表达式吗?

追答

确实是,你可以重新定义一个指针,然后把数组地址赋给这个指针,第4个答案就是对的了

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-11
D
数组名被当做常指针,所以不能对其进行自加运算。追问

额。。。。常指针。。是什么?

追答

就相当于常量啊。是不能被改变的,试图改变它编译器会报错。
比如
const int max = 100; //定义一个整形常量max=100 就是100了
max = 200; //试图修改它,编译器会报错
再说的详细点
int a = 3;
int b = 2;
int const *p = &a; //p是一个常指针,初始化为a的地址
p = &b; //编译器会报错,p是常指针,只能指向a的地址,不能改变它

本回答被提问者采纳
第2个回答  2012-05-11
D是错误的。
s是数组的首地址,不能做++运算
第3个回答  2012-05-11
D

...且0<=i<10,则下面()不是对数组元素地址的正确表示
A应该是错误的。他是不能这样表示的。B选项:C语言在编译的时候会为数组分配内存,所以在编译好运行的时候a的地址是确定的了。它后面是一块连续的内存。此时意味着a是一个常量,常量是不能做自增运算的。C选项也是错误的。:p是一个指针变量。变量意味着本身也有一个地址。只是这个地址对这个程序并...

若有下列定义 intx[10],*pt=x; 则对x数组元素的正确引用是( )。
【答案】:B B。【解析】在C语言中,数组名是一个存放地址值的指针变量名,其地址值是数组第。一个元素的地址,也是数组所占一串连续存储单元的起始地址。因为数组的下标是从0开始的,所以选项B中,X+3表示数组x[10]中的第四个元素的地址,在其前面加上星号,表示是数组x[10]中的第四个元素中...

C语言题目 多项选择(至少两个正确答案)
A.int x[][5]; B.int y[]={0}; C.int z[2,3]; D.char s[11]=“abc\\ndef\\n”;9. 设有说明int a=0,b=1,c=2;下面表达式的值为1(对于逻辑表达式代表非0)的有(B、D)。A.a && b B.++a C.!a && b>c D.c||a 10. 引用数组元素时,其数组下标表...

C语言习题 int x[10],*pt=x;,则对数组元素的正确引用是? A.pt+3 B...
(pt+3)等价于pt[3] 又等价于x[3]C.*(x+3)和*(pt+3)是等价的 A相当于&x[3]

1、若有定义和语句:char s[10]=〃abcd〃;printf(〃%s\\n〃,s); 则结 ...
答案:A C语言中,字符串都是转换为字符数组处理的.每个字符串的结尾都有一个字符串结束标志:\\0.这是一个不可显示的字符,当输出字符时,输出到该数组元素时即结束输出.所以正确答案为A.

c语言选择题10道
C、i=*p;D、i=2*p+1;2、设 char s[10] ; int I ; 以下引用数组 s 中元素正确的表达式是(B )。 \/\/s[]可提取或*(S+i)可提取数组中元素 A、S(i+2);B、*(s+i)C、*(&s+i)D、*((s++)+i)3、若有定义和语句 int **pp, *p, a=10, b=20;pp=&p;p=&a;p=&b...

1. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能出栈的序列是...
{ char s[100]="abcddfefdbd",c='d'; fun(s,c); printf("%s\\n",s);}程序运行后的输出结果是( B )。26 (A) ABCDDFEFDBD (B) abcDDfefDbD (C) abcAAfefAbA (D) Abcddfefdbd 2. 读程序并回答问题。# include <stdio.h>void fun(int a[],int n){...

在C语言中,引用数组元素时,其数组下标的数据类型允许是___。 A.整型...
a和b都对,不过当然是c更完整,就像数人头,总不可能有一点几个人头吧

C语言试题C(速求)
6. 在C语言中,引用数组元素时,其数组下标的数据类型允许是___C___A)字符 B)数组名 C)整型常量或整型表达式 D)逻辑表达式 7. 若有下面的程序段:char s[]="china";char *p;p=s;则下列叙述正确的是___C___A)*p与s相等 B)p与s[0]相等 C)p与s相等 D)*p与&...

c语言怎样取字符数组中元素的ascii码
c语言怎样取字符数组中元素的ascii码 定义一个chara[10];intb[10];现在我要把a中所有字母的ascii码赋给对应的b中,怎么写?... 定义一个 char a[10]; int b[10]; 现在我要把a中所有字母的ascii码赋给对应的b中,怎么写? 展开  我来答 6个回答 #热议# 柿子脱涩方法有哪些? 听不清啊 ...

相似回答