1. c语言有哪些数据类型(基本 复合)
2.所有数据类型字节长度(占内存空间的大小)
整型:4字节(32位)
浮点型:单精度 4字节 (32位)
双精度 8字节(64位)
字符型:1字节(8位)
3.Sizeof使用 sizeof strlen区别
sizeof()是运算符,其值在编译时即计算好了
参数可以是数组、指针、类型、对象、函数等
它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。
strlen()是函数,在运行时才能计算
参数必须是字符型指针(char*)。
它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。
4.所有数据类型取值范围如何计算(原码 反码补码)
正数和负数原码、反码、补码区别
真值:
将带符号位的机器数对应的真正数值称为机器数的真值
原码:
原码就是符号位加上真值的绝对值,即用第一位表示符号, 其余位表示值.
反码:
正数的反码是其本身
负数的反码是在其原码的基础上,符号位不变,其余各个位取反.
补码:
正数的补码就是其本身
负数的补码是在其原码的基础上,符号位不变, 其余各位取反, 最后+1.
5.所有数据类型指针长度或为什么是4或8字节
指针存放的都是下一个元素的内存地址,所以不论元素类型和大小,指针的大小都是固定的
6.变量的三大特点是什么
变量有三个属性——作用域、链接属性和存储类型
修改作用域关键字:extern
变量(或标识符)的作用域就是在程序中该变量可以被使用的区域
修改链接属性关键字:static(代码块外的变量声明)
一个程序转换成可执行文件有4个过程——预处理,编译,汇编,连接。链接属性则是在连接这一步作用。 链接属性有三种——外部(external)、内部(internal)和空(none)
修改存储类型的关键字是auto、static(代码块内的变量声明)和register
变量的存储类型是指存储变量值的内存类型。变量的存储类型决定变量何时创建、何时销毁以及它的值将保 持多久。存储变量的地方有三个——内存、堆栈、寄存器。
7.变量的存储区域划分方法(进程虚拟地址空间分布图)
8.声明与定义的区别
声明是告诉编译器存在这么一个标识符。
定义则是为程序申请一块内存。
引用性和定义性声明是什么
定义性声明(defining declaration),俗称“定义”,建立了存储空间
引用性声明(referencing declaration),俗称“声明”,没有建立存储空间,只是为了在定义之前使用
9.Unsigned signed数区别
有符号就是第一位是带代表正(0),负(1),无符号就是正常数值
带符号类型可以表示正数也可以表示负数(包括 0),而无符号型只能表示大于或等于0 的数
scanf()函数是格式化输入函数,它从标准输入设备(键盘)读取输入的信息。
其调用格式为:
scanf(“<格式化字符串>”, <地址表>);
格式化字符串包括以下三类不同的字符;
1. 格式化说明符:格式化说明符与printf()函数中的格式说明符基本相同。
2. 空白字符:空白字符会使scanf()函数在读操作中略去输入中的一个或多
个空白字符。
3.非空白字符:一个非空白字符会使scanf()函数在读入时剔除掉与这个非
空白字符相同的字符。
地址表是需要读入的所有变量的地址,而不是变量本身。这与printf()函数
完全不同,要特别注意。各个变量的地址之间同“,”分开。
gets()函数
gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束,但回车符
不属于这个字符串。其调用格式为:
gets(s);
其中s为字符串变量(字符串数组名或字符串指针)。
gets(s)函数与scanf(“%s”, &s)相似,但不完全相同,使用scanf(“%s”, &s)
函数输入字符串时存在一个问题,就是如果输入了空格会认为输入字符串结束,
空格后的字符将作为下一个输入项处理,但gets() 函数将接收输入的整个字符
串直到回车为止。
getchar()函数用于从标准输入控制台读取字符,原型如下:
int getchar(void);
该函数没有参数。函数的返回值为用户输入的第一个字符的ASCII码,若出错返回-1,且将用户输入的字符回显 到屏幕。如果用户在按回车键之前输入了不只一个字符, 其他字符会保留在键盘缓冲区中,等待后续 getchar()调用读取。
getchar()非真正函数,而是getc(stdin)宏定义。
11.输出函数的使用(printf puts putchar)(如何输出所有数据类型)
Printf()函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf 函数之前必须包含stdio.h文件。printf函数调用的 一般形式为:
printf(“格式控制字符串”,输出表列)
其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符 串是以%开头的字符串,在%后面跟有各种格式字符,以说 明输出数据的类型、形式、长度、小 数位数等。如:
“%d”表示按十进制整型输出;
“%ld”表示按十进制长整型输出;
“%c”表示按字符型输出等。
非格式字符串原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式字符串和各输出 项在数量和类型上应该一一对应。
putchar函数(单个字符输出函数)
函数的格式:putchar(ch)
其中ch可以是一个字符变量或常量,也可以是一个转义字符。
函数的作用:向终端输出一个字符。
(1)putchar函数只能用于单个字符的输出,且一次只能输出一个字符。
(2)在程序中使用putchar函数,务必牢记:在程序(或文件)的开头加上编译预处理命令(也称包含命令 ),即:#include "stdio.h"。
puts()函数
puts()函数用来向标准输出设备(屏幕)写字符串并换行,其调用格式为:
puts(s);
其中s为字符串变量(字符串数组名或字符串指针)。
puts()函数的作用与语printf(”%s\n”, s)相同。