
c语言指针经典例题,c语言指针题目及答案
- 科技
- 2023-09-23
- 6

C语言关于指针的三道简单选择题,来个大神解释下,谢谢 . 若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是(D)。A. p=q; B. *...
C语言关于指针的三道简单选择题,来个大神解释下,谢谢
. 若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是(D)。A. p=q; B. *p=*q; C. a=*q; D. q=a;a是整型数,int *p,*q定义了指针,p,q是指向整型的指针。
D选项,*x本身就错误,因为x是int类型,没法使用*操作符。
int a[2][3]; 定义了一个二维函数,每一维数组有三个元素。
首先这里所谓的2维数组,在内存中是按照一维数组方式来存放的,所以这里int a[4][4]可以理解成int a[16],*p又是指向a的指针,所以C是正确的。对于A是指针的指针的了,明显是错误的。B,D和A是一样的。
(*p)是一个整体,你把它看做q,就有int q[4],(1)q = 一个四元素整形数组。而q = *p,(2)p = 指向q的指针。 (1)中的 q代入(2)。C答案 int * 是一个类型。
答案是A,首先定义p是一个指向int类型的指针,不过这个指针没有初始化,也就是没有指向。然后定义了一个int类型的变量i,这里千万不要认为i也是个指针,如果i跟p一样,要在前面也加个*号。
一道C语言指针类问题(有答案,解释一下过程)
第一题答案:B。理由:*s与*t都是取出此时地址存储的值,while()语句里面的意思是,当指针s与t都不为空并且s指向的值等于t指向的值。。
这样y-x=6 其实实际循环了5次,但是y 和 x 两个指针却相差6 是因为++的优先级比*高导致的。希望我的回答对你有点帮助,很高兴和你一起讨论和学习C语言。C语言的指针是比较难理解的知识点,需要多练习才能掌握。
{ char *p=s;while(*p) p++;return (p-s);} 上面是我修改一下你的程序。程序的结果为:6 也就是a中字符的个数。因为字符在内存中占用一个字节,所以使用a的结束符的位置减去a的起始地址,就是字符的个数。
首先这里所谓的2维数组,在内存中是按照一维数组方式来存放的,所以这里int a[4][4]可以理解成int a[16],*p又是指向a的指针,所以C是正确的。对于A是指针的指针的了,明显是错误的。B,D和A是一样的。
嗯,没错,对指针的加减运算是以步长为单位的,不过这是对编译器来讲的。
C语言指针题
1、P1 P2是指针,K是整型变量,变量怎么可以赋值给指针呢?A其实是执行了K=K+K(P1和P2都指向K,所以*P1 *P2其实都是指K)C是赋值语句 D其实执行了K=K*K 4. 变量的指针,其含义是指该变量的(B)。
2、您的这个程序,主函数中的第一句话表示p1 和str都是数组名,指向数组中的第一个元素。p2是指针变量,指向的是字符型数据。第二句话表示p2这个指针变量指向的是包含有abc等三个元素的字符型数组。
3、概念问题:指针是指存放地址值的变量或常量;指针与一般变量或常量的区别,在于它不直接存储数值,而是存放被存储数值的地址,属于间接存放,所以不少初学者感觉学习困难。
4、这题目输出的结果是 5,6,6解析:首先声明一个整型数组a,整形变量y,整型指针p。p指向数组a[]的第1个元素,也就是8。接下来,指针p先--,指向了数组a[]的第0个元素,也就是5。之后y取出p指向的内容,即5。
关于指针的c语言题,求解释和答案
D选项,*x本身就错误,因为x是int类型,没法使用*操作符。
你也可以理解: p=*s; 即 p= *(s+0); 即 p=s[0]; p=&s[0][0];p 有了字符/字符串存放空间。答案是一条一条判断的。
(A) x[3]// x[3]=3 数组从0开始,3其实是第四个 (B) p1 = x + 3, *p1++ //先执行p1=x+3,也就是指向x[3],因为p1定义成指针。
for为s数组赋值。s0值未知。s1到s5为2,3,4,5,6。输出f(s,4,n)。s数组的首地址被局部指针变量s接收。其他两个局部变量(f的形参)a=4,n=5。再看f函数体:*s=a。也就是*s=4。
本文链接:http://www.depponpd.com/ke/27551.html