C语言面试题分享(3)

一、用变量a给出下面的定义

a) 一个整型数(An integer)
int a;

b) 一个指向整型数的指针(A pointer to an integer)
int*a;

c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer)
intb = 0;int *p = &b;int **prt = p&;

d) 一个有10个整型数的数组(An array of 10 integers)
int a[10];

e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10pointers to integers)
int*a[10]

f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)
int(*a)[10];

g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that int takesan integer as an argument and returns an integer)
(*a)(int);

h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An int array of ten pointers to functions that take an integer argument and return aninteger )
(a*[10])(int);

二、分析以下代码,它的运行结果是?

#include <stdio.h>

int main(void)
{
    
    
	int i = -1;
	if(i = 0)
		printf("i = %d\n",i);
	else if(i = 1)
		printf("i = %d\n",i);
	else
		printf("i = %d\n",i);
	return 0;
}

答案:i = 1
因为if(i = 0)判断为假,同时i赋值为0
if(i = 1)判断为真,同时i赋值为1

猜你喜欢

转载自blog.csdn.net/weixin_44788542/article/details/111726917