C语言 数据类型解读

(1)如何完成不同数据类型之间的强制转换?

int a=(int)ch,将字符变量强制转换为整形变量;char ch1=(char)a,将整形变量强制转换为字符型变量;char *p=(char*)a将整形变量强制转换为字符型指针变量。主要是要把(类型说明符)表达清楚。

(2)形参和实参的区别?

实参是属于主调函数的局部变量,形参是被调函数的局部变量。形参是定义函数时使用的参数,作用在于当该函数被调用时,形参要接受传入函数里的参数值,所以形参和实参要类型一一对应。而实参都必须具有确定的值, 以便把这些值传送给形参。其实形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传输。

(3)原码,反码,补码如何表示和转换?

原码就是数字的二进制表示,正数反码和补码都是原码,不变。而负数的反码就是符号位(最高位为符号位,1为负数,0为正数)不变,其余数取反,负数的补码就是在反码的基础上加一。

(4)声明和定义的区别?

声明有两种含义,一是声明该名字已经有内存地址了,已经分配存储空间,而是表示该名字已被预订,将会要使用的,不要再使用它了,不会分配存储空间,典型的就是函数声明里面的形参。而定义则一定是确确实实地创建了对象并分配了内存空间。从大的角度看,声明的范围更广,定义更像声明的一种形式。

(5) 结构体是如何定义的?

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构体。用途是把不同类型的数据组合成一个整体。比如我需要学生的成绩,年龄,性别等信息的集合,我就可以创建一个结构体struct student,里面包含各种数据类型int可以表示成绩,年龄,char表示性别等。最后定义两个变量str1,str2表示两个学生

struct student{

char name;

int num

int age

,,,

}str1,str2;

(6)typedef和结构体如何结合使用?

typedef struct tag_node

{

 char *p_item;

struct tag_node *p_node;

};

typedef struct tag_node *p_node;

typedef作用是为一个数据类型定义一个新名字,而结构体是是把不同类型的数据组合成一个整体。结合就是先定义一个新的结构体,再为它起个名字。如上,先定义了tag_node这个结构体,包含字符指针变量和结构体tag_node(就是自己)。这部分是结构体在发挥作用,接着tepydef起了一个*p_node的名字。

(7)static的特点是什么?和const的区别在哪里?

static变量是独立于函数的,它的变量空间在内存区的静态区分配,只初始化一次,之后不会初始化,如何没有初始化,自动赋值为0,而const的一直保护不变的,只能访问不能修改。

(8)宏定义和typedef有什么区别?

宏定义仅仅是字符的替换,但是typedef是类型的重新命名,在一些场合,比如指针的宏定义及typedef,typedef可以准确表指针的赋值,但是宏定义却不能。如#define p char *; p s1 s2;其中s1为char   *s1,但是s2不会定义为字符指针,因为它没有前缀char *。

(9)strcmp ,strcpy, strcat的简单理解及使用?

strcmp主要完成字符的比较功能,如strcmp(str,ptr);如果str > ptr, return 1;  str == ptr,return 0;  str < ptr,return -1;通常使用时a = strcmp(str,ptr)。

strcpy主要完成字符的复制功能,如strcpy(str,ptr);将ptr内的字符串复制给str,注意:str一定要足够大,可以容纳ptr。并且如果想只复制前几位就strncpy(str,ptr,n)。

strcat主要完成字符串的连接strcat(str,ptr);将字符串ptr连接达到str后面。

(10)函数执行一共那几步?

1,通过函数名知道函数入口地址;2,给形式参数分配空间;3,值传递或者地址传递;4,执行函数;5,返回main函数;6,释放栈空间。







                                                                                                                                                                                                                                                                               

猜你喜欢

转载自blog.csdn.net/rocky_56x/article/details/79142290