#includeint main(void) { int i; printf("------ASCII---------") for (i=0;i<120;i++); { printf("t% "); } printf("-------ASCII-----n"); }
t 就是tab的意思
当程序简单的时候,一个人可以用一个main函数搞定功能,当程序变成的时候,超出了人的大脑承受范围,这时候逻辑不清了。这时候就需要把一个大程序分割成很多小模块,于是乎就出现了个概念叫做函数。函数是c语言代码的基本组成部分,他是一个小的模块,整个程序有很多个功能独立的模块(函数)组成。这就是程序设计的基本分化方法。
使用函数写程序时的关键部分
函数定义:函数声明实际上是叫函数原型声明。什么叫原型?函数的原型包括三部分:函数名、返回值类型,函数参数列表。通俗来说,函数的原型就是这个函数叫什么,接收什么类型的几个参数,返回一个什么样的返回值。
函数声明的作用:在于告诉使用函数的人,这个函数使用时应该传递给他什么样的参数,他会返回什么样类型的返回值。这些东西都是写函数的人在函数定义中规定好的,如果使用函数的人不参照这个原型来使用,就会出错,结果就会和你想的不一样。
函数调用:函数调用就是使用函数名来调用函数完成功能。调用时必须参照原型给函数传参,然后从函数得到适当的返回值作为结果。
{ c = add(a,b) printf("c=%d.n" ,c); //函数先赋值给变量再使用 printf("a-b = %d.n", sub(a,b)); //直接把函数调用作为一个整体使用 return 0; } //函数定义 int add(int a, int b) //函数定义后面没分号,但时有{}和函数体 { return a+b; }
形参和实参
形参:形式参数的简称。在函数定义和函数声明中的参数列表中的参数,都是形参。
实参:实际参数的简称。函数调用中,实际传递的参数才是实参。
函数调用的过程中,其实就是实参传递给形参的一个过程。这个传递实际是一次拷贝。
返回值:(关键字return)
当函数执行完之后,会给调用该函数的地方返回一个值。这个值的类型就是函数声明中返回值类型,这个值就是函数体中最后一句return xxx;返回的那个值。
函数名和变量名
第一点:起名字时候能不能随意,要遵守规则。这个规则有两个层次:第一层就是合法,第二层是合理。合法就是符合c语言中变量名的命名规则。合理就是变量名起的好,人一看就知道什么意思,一看就知道这个函数是干嘛的,而且优美、好记。
第二点:c语言中,所有的符号都是区分大小写的。也就是说abc和Abc和aBc都是不同的符号。
第三点:c语言函数名变量名的命名习惯。没有固定的结论,有很多种使用都很广泛的命名方式。
如 1、 Linux的命名习惯 student_age
2、骆驼命名发 studentAge
怎么样使用数组?
数组定义的时候 作为整体定义。但是使用的时候不能作为整体使用,使用时必须拆开使用数组中的各个元素。
譬如数组int a[4],使用其中的四个元素,分别是a[0]-a[3],其中[]是数组的标志,[]中的数字叫做数组下标(index,索引),下标是我们访问数组中各个元素的指引。下标是0代表数组中的第一个元素,下标是1代表数组第二个元素。如果数组长度为n,下标中最后一个是n-1.访问数组时要特别注意下标,下标是从0开始的,如果下标超出了n-1,会产生越界访问,结果是不可预期的。
数组的初始化问题
int main(void) int a=23; //定义的同时初始化
int main(void) { int a[3] ={ 1,2,3}; //完全初始化 int a[3] = {33,22}; //不完全初始化 int a[3] = {[2] = 100} ; //gcc特有的初始化 }
数组类型
int a[]; //整型数组
float a[]; // 浮点型数组
double a[] ;//双精度浮点型数组
char a[]; //字符数组
程序在环境中运行时,需要一定的资源支持。这些资源包括:CPU(运算能力)、内存等。这些资源一般由运行时环境(一般是 *** 作系统)来提供,譬如我们在Linux系统上 ./a.out运行程序时,Linux系统为我们提供了运算能力和内存。c语言程序中,变量的实质就是内存中的一个格子。当我们定义(创造一个变量)了
int main(void) { int len; len = sizeof(int); //4单位是字节 len = sizeof(float); //4单位是字节 len = sizeof(double); //9单位是字节 }
int main() { char a[5] = {'a','b','c','d','e'} for(i=0;i<5;i++) { printf("a[%d] = %d %c.n",i ,a[i],a[i]); } }
1在c语言中引用一个单个字符时,应该用单引号' '括起来,譬如'a'.
2 定义数组同时初始化,则可以省略数组定义时[ ]中的长度。c语言编译器会自动推论其长度,推论依据是初始化式必须为完全初始化。
3、在c语言中引用一个字符串时,应该用“”括起来,譬如“abcde”
“abcde”实际上是有6个字符,分别‘a’ 'b' 'c' 'd' 'e' ''
' 这个字符时ASCII码表中的第一个字符',它的编码值是0,对应的字符是空字符(不可见字符,在屏幕上看不见,没法显示)''是c语言中定义的字符串的结尾标志。所以,当c语言中使用“abcde”这种方式去初始化时,编译器会自动在字符'e' 后面添加一个' '。于是变成了6个字符
冒泡排序
#includeint main() { int a[5] ,i ,j; for(i = 0; i<5;i++) { scanf("%d",&a[i]); } for(j=0;j<4;j++) { if(a[j]>a[j+1]) { printf("%d",a[i]); } } return 0 ; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)