功能函数 参数是个指针P+3 是指针的地址+3void point(char *p){p+=3;}主函数void main(){char b[4]={'a','b','c','d'},p=b; 把b的地址传给ppoint(p); 调用功能函数printf("%c\n 打印你函数没写全 估计最后打印出来的是 d}指针传进去,不是改指针指向的值void point(...
else if(a<c)if(b>d)x=2;else x=0;printf(“%d\n”,x);} 8. #include <stdio.h> define S(a,b) (a)*(b)void main(){ int a=3 ,area;area=S(a,a+3) ;printf("area=%d\n",area);} 9. #include <stdio.h> void main(){ int y=-1 ;do...
#include<stdio.h>int pow(int x,int y){ int z=1; for(;y>0;y--) z*=x; return z;}void main(){ int a=2,b=3; printf("%d",pow(a,b));}这个是不行的,但你可以强制转化为int在计算很大的数时程序会有计算损失例如pow(10,2)在某些情况下计算出来可能是...
p是一个地址,p++的运行结果是p的地址在内存上增加一个类型占内存大小(int型就是4字节,p++实际上是增加了4字节,但是在第一次运行p++的时候,虽然使p增加了4字节,但是当个语句中p++的返回值还是p)是取目标符,*加一个指针就是取这个指针指向的内容,这里p是指向a数组的第一个元素的 a[]...
例子:include<stdio.h> void main(){ int (*p)[4];int a[3][4],i,j;/*常规的初始化与输出*/ printf("input:\n");for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);printf("二维数组\n:");for(i=0;i<3;i++){ for(j=0;j<4;j++)printf("%d\t",...
b,d char *p=(char *)(&a+1); 把a当成一个数据结构4个字节,所以p是在'd'后面的一个字节位置
int a[3][2]={(0,1),(2,3),(4,5)};int a[3][2]={{0,1},{2,3},{4,5}};两种方式赋值不同,第一种数组的值分别为1,3,5,0,0,0,第二种是0,1,2,3,4,5 应该
include <stdio.h>int main(){int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, *p = &a[3], b; b = p[5];printf("%d\n", b);} 因为*p=&a[3]; 表明将a[3]的地址赋值给p,此时p[0]=a[3],因此p[5]=p[0+5]=a[3+5]=a[8]。
然后整个表达式 求值完之后 才 += 1所以 B 是正确 答案对于C, ++p, p此时指向10, 然后 *p, 结果会是数组中的10(此处是数组中的10)对于D, ++*p, 首先*p 结果是9, 再++, 输出10 (此时的10 只是 9 + 1, 而不是数组中的10)在Dev里试了一下p从头到尾代表数组a首地址&a[0],循环中(...
若有定义:int a,b;char x,y;并有以下输入数据: 14 22 XxYy (回车)则能给a赋整数14,给b赋整数22,给x赋字符x,给y赋字符y的正确程序段是_C___. (知识点4.2)A) scanf(“%d %d”,&a,&b