1-1
变量定义:int *p, q; 中,p和q都是指针。
F(q为整型变量)
1-2
执行语句int *p;
后,指针变量p
只能指向int
类型的变量。
T
1-3
不同类型的指针变量是可以直接相互赋值的。
F
1-4
语句int *p; *p = 50;
执行时,不会有任何错误。
F(这段代码会出现错误。指针p没有初始化,它是一个野指针,指向未知的内存地址,所以对*p进行赋值操作时会导致程序崩溃。正确的做法是先给指针p分配一个合适的内存空间,例如可以使用malloc函数动态分配内存。)
1-5
要通过函数调用来改变主调函数中某个变量的值,可以把指针作为函数的参数。
T
1-6
对于定义int a[10],*p=a;
语句p=a+1;
和a=a+1;
都是合法的。
F(对于定义int a[10], *p=a;语句,p指向数组a的首元素,即p=&a[0]。如果想将p指向a的下一个元素,应该使用p = a + 1而不是p = a + 1,因为p是一个指针变量,不能直接赋值给它。而对于a = a + 1这个语句,数组名a是一个常量指针,不能进行赋值操作,所以这个语句是不合法的。)
1-7
两个任意类型的指针可以使用关系运算符比较大小。
F
1-8
关于C语言指针的运算:指针只有加减操作,没有乘除操作。指针可以加常数、减常数;相同类型的指针可以相减,不可以相加。
T
1-9
语句int *p;
和printf("%d",*p);
中的*p含义相同。
F
1-10
对于定义int a[5],*p=a;
后,*(p+1)
和*(a+1)
的值是相同的。
T
1-11
在C语言中,数组名是不可改变的,不能对它进行赋值运算。
T
1-12
指针变量是一种特殊的变量,专门存放其他变量的数值。
F
1-13
专门存放地址的变量,称为指针变量。
T
1-14
在用数组名作函数参数时,下面两种函数声明是有区别的。
①void fun(int arr[], int n);
②void fun(int *arr, int n) ;
F