C语言两个概念性问题请教大家谢谢了

2021-03-06 05:29:45 字数 2663 阅读 7606

1楼:花烛错

第一题a 指针是一个变量 错

指针其实就是地址 是常量

b 指针中存放的是地址值 错 指针变量中存放的是地址值c 指针可以进行加,减等算术运算 错 应该是不能进行加法运算的d 指针变量不占用存储空间 错 变量是占存储空间的第二题a.char s[5]=; 应该是对的b char*s;s=”abcde”; 对c char s[5]=”abcde”;错 字符串是以\0结束的 而s[5]少了一个s[6]才能装下“abcde”

d char s[5];s=” abcde”; 错 数组名是地址常量 常量是不能被赋值的

2楼:only丶小轩

第一题:

指针是指一个变量的地址,而不是一个变量,因此a错,指针本身就是一个地址值,存放地址值的变量叫指针变量,因此b错,指针是一个很抽象的东西,仅仅是一个变量地址的代名词,而指针变量是存放指针的变量,可以合法的进行算术,赋值操作..

ps:我们平时所说的指针运算其实指的是指针变量运算..而不是这里这么严格意义上的指针..

根据上述定义,指针时不会占用存储空间的,存放指针的指针变量才会占用存储空间..因此d是正确的..

这道题是让你区分指针和指针变量的严格区别的..

第二题:

a和c都出现了数组下标越界..因为在开辟数组时,只开辟了5个单位的内存,字符串在结尾处系统会自动补上一个‘\0’,以表示字符串的结束.这样的话需要占用6个内存:

char s[6]=

最好自己养成好习惯,在定义字符串时,自己加上'\0':

char s[6]=

3楼:匿名用户

你能知道b是正确的,就可以推出d是错的了,能存放地址值勤的话,能不占存储空间吗? b 和d是矛盾的

指针又叫指针变量。

指针偏移就是指针的算术运算。

a错是因为这样的赋值,内存中abcde后不一定会有/0 或0x00来断开。字符串的定义是以/0结束。

c中少了{}

4楼:百度用户

第一题:

指针的含义我的理解就是它也是一种数据类型,只不过它存放的是相应类型的地址。其实数组就相当于指针常量。对于a,因为指针可以改变指向,改变指向的含义就是改变指针内所存的地址,例如 int a,b; int *p;

p=&a;//这时指针p存放的地址是a的地址。

p=&b;//这是指针就改变所储存的地址

所以它当然是变量,它要有空间储存地址值。所以d错 它要占用空间去储存 地址。

对于c,当指针指向一个数组时,其实其中存放的是数组这个连续空间的首地址,所以 (好比把数组比作一排,指针的+,-就是移动在这一排上的指向)

第二题:

这是书上的概念,你看看清华大学出版社的 姓谭的那位编的书

有些是常识行东西 ,只要记住知道怎么用就好了 ,其实学编程重要的是实践,你能避免这些错误,不必一定要都知道为什么。

5楼:匿名用户

1.指针就是一个变量,它的值就是地址,变量当然可以加减,并占用存储空间

2.a是对的但不合理,当你用字符串函数时,会找不到'\0'

b是对的

c是错的,""初始化时自动添加'\0',所以会报错(越界);

d是错的,s是首地址,不可改变.

6楼:匿名用户

指针能进行加法运算,但两个指针不能进行加法运算!

第二a没有结束的'\0';

c也是;

7楼:匿名用户

第一题,都是概念死记记住,变量都是要占内存的,b就是指向某个地址的变量

第二题,a不是字符串,只是字符数组,c不对,差了一个'\0',如果这样就对了char s[6] = "abcde"

8楼:许个美好的愿望

1、不引用当让不占用了··

2、a 中好像不用加引号 c 应该是s[6]

好像是这样的 当年学的 都忘了··

9楼:

第一题:指针本身就是一个变量.只是这个变量的值比较特殊.它的值是一个内存地址 所以d才是对的.既然是变量就要占用内存空间.不管它是不是指针都要占.

第二题:题目说的是字符串.c语言中的规定字符串是以空字符(\0)结尾的.所以a虽然可以赋初值.但是不是字符串. 选项c就不用再说了跟a一样的理由.把c换成

char s="abcde";就是对的.

10楼:时间的马赛克

第一题指针是一个变量,这个变量存储的是一个地址的值,举例说**中会出现这样的语句 int *p=null;p=(int *)malloc(4*sizeof(int));

她包括了如下过程:声明一个指向整数数组的指针p;对p进行初始化p=null;利用malloc函数向系统申请一个大小为4的存储整数的存储空间并将存储块的首地址赋值给p。

从这个例子不难看出,指针p可以被多次赋值,为变量(a正确),并且赋值内容均为地址值(b),既然指针为变量,那么它必然是占用存储空间的。关于选项c,事实上指针完全是可以作加减运算的,比如说上面的指针p,她赋值为:p[0]=0;p[1]=1;我们可以用表达式*p;和*(p+1)分别取到值0和1,而(p+1)就是对指针进行加法运算的过程

第二题我楼上的各位已经说得很清楚了,综合一楼和三楼给的解释差不多就是正确答案了

11楼:匿名用户

定下wka,问题都说清楚了

请大家帮忙看看这道C语言题,请大家帮我看看这道C语言题目,谢谢了!!求回文数?

1楼 樣小樣 1 fun函数返回值是指针a 一个地址 而从if r 0 a s 这里可以看出a就是字符串t最后一次出现时的地址。 2 两个p是不同的变量! 知识漏点 此程序中 主函数的p有效范围只在主函数,用来接收返回值 p fun s t 此程序中 fun函数的p有效范围只在fun函数上,用来接收...

新手学c语言,简单的问题,求大神解答,谢谢啦

1楼 匿名用户 include include double distance double x1 double y1 double x2 double y2 int main void double distance double x1 double y1 double x2 double y2 ...

打算开个小型的观赏鱼店,请教大家一些问题,谢谢了

1楼 匿名用户 做的太杂了 已经不是观赏鱼店了 变成 宠物店了 显得不专业了 要专业 就只做单一客户 譬如说 只卖孔雀 只卖龙鱼 只卖袖珍虾 等等 2楼 水中月亮之美 觉得你肯定会忙不过来。单卖鱼的话估计利润也不错,经营一段时间后在拓展也很好嘛,什么多了也就费心费力啊。看看生意怎么样再说吧,支持你。...