嵌入式学习 linux c day5

嵌入式学习 linux c day5,第1张

嵌入式学习 linux c day5
#include

int 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个字符

冒泡排序

#include

int 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 ;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5694778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存