这次C语言基础知识复习使用北工大廖湖声老师的C语言程序设计案例教程,就是个人笔记的形式(可能会很杂乱),主要用来复习遗忘的细节部分:
北工大廖湖声老师的C语言程序设计案例教程电子版链接:http://www.ebookmen.com/PreviewOnLine.aspx?MetaID=m.20111008-BPO-889-0023
1.2.2 运行C程序的基本过程
(1)编辑
将C语言程序源码准确无误地输入到计算机中,并以纯文本形式保存为.c/.cpp后缀的文件。
(2)编译
将编辑好地C源程序翻译成二进制目标代码是编译阶段的主要任务,编译程序会对C源程序进行检查,若发现错误,会给出相应的错误提示。编译程序接收C源文件,编译成功后产生后缀为.obj的二进制目标文件。
(3)连接
经过编译阶段产生的二进制目标文件是一个需要重新定位的程序模块。一个完整的可执行的C程序可能由多个目标文件和标准函数构成,连接程序将接收多个后缀为.obj的目标文件,连接成功后产生一个.exe可执行文件。
(4)运行
运行.exe文件,看结果是否符合预期。
1.3 基本数据类型
int size_int = sizeof(int);
int size_long = sizeof(long);
int size_longlongint = sizeof(long long int);
int size_float = sizeof(float);
int size_double = sizeof(double);
printf("int 类型所占字节数:%d\n",size_int);
printf("long 类型所占字节数:%d\n",size_long);
printf("float 类型所占字节数:%d\n",size_float);
printf("double 类型所占字节数:%d\n",size_double);
printf("long long int 类型所占字节数:%d\n",size_longlongint);int long float double 在32 位GCC编译器下(VS2015,Dev C++)都分别占4 4 4 8字节
1.4 字符 / 字符串操作
(1)定义初始化单个字符操作
char ch1='A'; //字符常量 字符中存储的是字符的ASCII值 系统将他们作为int类型处理
char ch2='a';
char ch3='@';
char ch4='99978670'; //只将第一个字符赋值printf("%c\t%c\t%c\t%c\n\n",ch1,ch2,ch3,ch4); //字符型格式化输出 -- %c对应单个字符,%s对应字符串
printf("%d\t%d\t%d\t%d\n",ch1,ch2,ch3,ch4); //整型格式化输出ASCII码 -- %d//单个字符的非格式化输入输出: getchar(),putchar()
char ch;
ch = getchar(); //读取用户输入的 第一个字符
putchar(ch); //输出的 单个字符型常量、字符型变量、转义字符等
(2)字符串操作
printf("字符串初始化 方式1: 直接利用字符串初始化字符型数组\n");
char str1[]="hello world";
char str2[]={"hello world"};
printf("%s\n",str1);
printf("%s\n",str2);
printf("字符串初始化 方式2:以单个字符的形式逐一赋给字符型数组的每个元素 \n");
char str3[] = {'T','h','i','s',' ','is',' ','a',' ' ,'p','r','o','\0','g','r','a','m'};//注意这种初始化形式需要添加结束符 '\0'
printf("%s\n",str3);
(3)字符串输入输出方式
方式1. gets() puts()函数实现字符串的输入输出
char string[30];
gets(string);
puts(string);
方式2. scanf() printf()函数实现字符串的输入输出
char string1[30];
scanf("%s",string1);
printf("%s\n",string1);
- 用gets()和scanf()函数接收用户输入的区别:
gets()函数以换行符或文件结束符EOF作为输入的结束标志符,因此用户输入字符串时允许输入空格或制表符;
而scanf()函数以空格、制表符、换行符和文件结束符EOF作为输入结束的标志,因此输入时不允许包含这些字符,若包含,系统作为结束标志处理
若用scanf() 输入字符串This is a program,实际字符串的内容是 This
- puts() 和 printf()输出字符串的区别:
puts()函数输出后自动换行,printf()不自动换行
- char string2[] = "Hello world!";
puts(string2); //puts() 和 printf()输出字符串的区别是puts()函数输出后自动换行,printf()不自动换行
puts(string2);
putchar('\n');
printf("%s%s",string2,string2);