以下内容为个人的学习笔记整理,如有错误,请指出,谢谢~
1.gcc是GUN项目中符合ANSIC标准的编译系统,能够编译用C、C++、objectC等语言编译的程序。
2.gcc编译有四个阶段(hello为文件名):
①预处理:gcc-E hello.c-o hello.i
②编译:gcc-S hello.i-o hello.s
③汇编:gcc-c hello.s-o hello.o
④连接:gcc hello.o-o hello
最后输入./hello即可编译
也可以将上面四个阶段合成一步完成:
gcc -o hello hello.c
最后输入./hello即可编译
1.常量:其值不能改变
①整型常量:1、5、88......
②实型常量:
(1)小数:2.33、0.123
(2)指数:1.23e5、2.3e-1
e/E前面必须有数字,并且e前面必须为整数,像e3表示10的三次方
③字符常量:用一对单引号
④字符串常量:用一对双引号
⑤符号常量:用define指令,指用一个符号名称来代表
例如:#define PI 3.14 用PI来代表3.14,人们习惯用大写来表示符号名
2.变量:其值能改变(先定义,后使用)
①整型变量:
(1)短整型 short int
(2)整型 int
(3)长整型 long int
②实型变量
(1)单精度 float
(2)双精度 double
(3)长双精度 long double
③字符变量
char为标识符
使用方法:数据类型 变量名
人们习惯用小写来表示变量名
标识符由数字、下划线、字母组成,并且第一个必须为下划线/字母
#include <stdio.h> int main() { printf("Aure_xl");//后面要加分号 return 0;//结束语 }
①printf输出 scanf输入
②getchar字符输入 putchar字符输出
③scanf函数支持的常见格式说明符
d整数 c单一字符 s字符串 e指数形式浮点小数 f小数形式浮点小数
④sacnf常见使用方法:scanf("%d",&a);
代表的意思:输入一个整数存入a变量中
另外使用方法还有:
(1)%4d 为四位整型,不够前面为空格
(2)%04d 为四位整型,不够前面为0
(3)%4.2f为六位整型,小数后面有2位,小数点前面有3位,小数点也算一位
⑤printf常见使用方法:printf("输入的整型数=%d",a);
代表的意思:将a变量的值输出
另外使用方法与scanf相同
①取模符号%:相除取余数(操作数必须是整数)
例如:7%3=1、3%7=7
②++:
(1)a=2,b=++a;那么,a=3,b=3
(2)a=2,b=a++;那么,a=3,b=2
总结:
++a时,++在前面,那么a=a+1,b也=a+1;
a++时,++在后面,那么a=a+1,b=a原来的数;
③--:跟++以此类推
④x-=y的意思是x=x-y;x+=y的意思是x=x+y
⑤0为假,非0为真
(1)||或运算,一个真就为真
(2)&&与运算,一个假就为假
(3)!非运算,真的为假,假的为真
⑥==等于(用于判断真假的等于) !=不等于
例如:a=9,那么a==9输出表示“真”
①条件判断语句
(1)if语句
#include <stdio.h> int main() { int x,y; printf("请输入x的值:"); scanf("%d",&x); printf("请输入y的值:"); scanf("%d",&y); if(x>y)//后面不加分号 {printf("x比y大");} if(x<y)//后面不加分号 {printf("x比y小");} if(x==y)//后面不加分号,这里不能用=,必须用== //上面一行也可以变为:else,其表示上面的条件皆不符合 {printf("x跟y一样大");} return 0; }
(2)switch语句
#include <stdio.h> int main() { char grade;//因为存进grade的是字母,这边定义自变量名时要用char而不是int printf("请输入ABCDE等级:"); scanf("%c",&grade); switch(grade)//不加分号 case‘A’://字符用单引号,字符串用双引号,最后要加冒号 printf("90~100"); case‘B’: printf("80~89"); case‘C’: printf("70~79"); case‘D’: printf("60~69"); default://如果default不在最后,要加break中断 printf("不及格"); return 0; }
②循环语句(初始条件、循环条件、状态改变、循环体)
(1)while语句:先判断表达式的值,再执行循环体
#include <stdio.h> int main() { int a=0; int i=1; while(i<=100)//不加分号 { a+=i; i++; } printf("0+1+2+3...+100=%d",a); return 0; }
(2)do-while语句:先执行循环体,在判断
#include <stdio.h> int main() { int a=0; int i=1; do//不加分号 { a+=i; i++; } while(i<=100);//要加分号!!! printf("0+1+2+3...+100=%d",a); return 0; }
(3)for循环语句(常用)
使用方式:for(表达式1;表达式2;表达式3)
表达式1:给循环变量赋初值,可省略,但要在for之前赋初值
表达式2:循环条件,如果省略会陷入死循环
表达式3:修改循环变量的值,可省略,但应该在循环体添加修改循环变量的值
表达式分别用分号隔开
#include <stdio.h> int main() { int a,i; for(a=0,i=1;i<=100;i++)//不加分号 { a+=i; } printf("0+1+2+3...+100=%d",a); return 0; }
数组是具有一定顺序关系的若干变量的集合,其中的每个变量,都被称之为数组的元素。
①一维数组:
表达方式为: 数组类型 数组名[常量表达式]
常量表达式表示的是数据元素的个数
数组名与变量名一样由数字、下划线、字母组成,并且第一个必须为下划线/字母
#include <stdio.h> int main() { int a[10];//定义一个数组有10个元素 int i,j; printf("输入十个数:"); for(i=0;i<10;i++) { scanf("%d",&a[i]);//数组是从a[0]开始的 } for(j=0;j<10;j++) {printf("a[%d]=%d",j,a[j]);}//输出刚刚输入的十个数 return 0; }
②二维数组:
表达方式为: 数组类型 数组名[常量表达式1][常量表达式2]
先行再列,如果定义了行列的位置是没有数值的,自动为0
例如:a[2][3]表示为两行三列
a[2][3]={1,2,3,4,5,6}相当于⬇
123
456