指针
指针是一种特殊的数据类型,不同于Int、double、float等常用数据类型,它存储的是数据的地址。C/C++程序员特别重视对指针的学习,因为指针能够通过地址直接操作内存,提高数据操作效率;但同时指针也是一颗危险的“定时炸弹”,如果不能正确操作指针会造成程序未定义行为,导致不知所“错”,产生巨大的维护成本。
-
有以下程序 #include <stdio.h> main () { int a[5] = {2,4,6,8,10},*p,**k; p = a; k = &p;printf("%d",*(p++)); printf("%d\n",**k); }程序运行后的输出结果是( )。
-
有以下程序 #include <stdio.h> main() { int c[6]={10,20,30,40,50,60},*p,*s; p=c; s=&c[5]; printf("%d\n",s-p); }程序运行后的输出结果是( )。
-
有以下程序: #include <stdio.h> main() { int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r; printf("%d,%d,%d,%d\n",m,n,*p,*q); }程序运行后的输出结果是( )。
-
有如下程序: #include <stdio.h> main() { int a=0,*ptr; ptr=&a; *ptr=3; a=(*ptr)++; printf("%d,%d\n",a,*ptr); }程序运行后的输出结果是( )。
-
有以下程序:#include <stdio.h> main() { int a[10]={1,3,5,7,11,13,17},*p=a; printf("%d,",*(p++)); printf("%d\n",*(++p)); }程序运行后的输出结果是( )。
-
若有定义语句:int year=2009,*p=&year;,以下不能使用变量year 中的值增至2010的语句是( )。
-
以下叙述中正确的是( )。
-
以下叙述中正确的是( )。
-
有以下程序#include <stdio.h> main() { int a=1,b=3,c=5; int *p1=&a,*p2=&b,*p=&c; *p=*p1*(*p2); printf("%d\n",c); }执行后的输出结果是( )。
-
有以下程序: #include <stdio.h> main() { int *p,x=100; p=&x; x=*p+10; printf("%d\n",x); }程序运行后的输出结果是( )。
-
有以下程序#include <stdio.h> main() { int n,*p=NULL; *p=&n; printf("Input n:"); scanf("%d",&p); printf("output n:"); printf("%d\n",p); }该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误, 以下语句正确的是( )。
-
若有定义语句:double x,y,*px,*py;执行了px=&x;py=&y;之后,正确 的输入语句是( )。
-
以下程序中关于指针输入格式正确的是( )。
-
设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于( )。
-
设已有定义: float x;则以下对指针变量p进行定义且赋初值的语句中正确的是( )。
-
设有定义: int x=0,*p;紧接着的赋值语句正确的是( )。
-
已定义以下函数 int fun(int*p) { return *p; }fun函数返回值是( )。
-
设有定义: int a,b[10],*c=NULL,*p;则以下语句错误的是( )。
-
若有定义语句: double a,*p=&a;以下叙述中错误的是( )。
-
有以下程序: #include<stdio.h> main() { char* p1 = 0; int* p2 = 0; float* p3 = 0; printf("%d,%d,%d\n",sizeof(p1),sizeof(p2),sizeof(p3)); }程序运行后的输出结果是( )。