专栏首页MyBlogsC语言学习笔记

C语言学习笔记

修饰符

const :加在int前面,用于给一个变量加上一个const(不变的)的属性。这个const的属性表示这个变量的值一旦初始化,就不能再修改了。

 const int NUMBER=100;

如果你试图对常量修改,把它放在赋值运算符的左边,就会被编译器发现,指出为一个错误。

C99

C语言常用格式化字符

格式化输出语句,也可以说是占位输出,是将各种类型的数据按照格式化后的类型及指定的位置从计算机上显示。这样做的好处,是有利于计算机能够准确的将我们所要类型数据给我们。

格式符

说明

举例

%d

带符号的十进制整数

int a=10;printf("%d",a);输出结果为10

%c

单个字符

char x='a';printf("%c",a);输出结果为a

%s

字符串

printf("%s","你好");输出结果为你好

%f

6位小数

float a=1.23;printf("%f",a);输出结果为1.23

格式符的个数要与变量,常亮或者表达式的个数一一对应

常量

在程序执行过程中,值不可改变的量称为常量。C语音的常量可以分为直接常量和符号常量。

直接常量也称为字面量,是可以直接拿来使用,无需说明的量,比如:

  • 整型常量:1,10,-10;
  • 实型常量:13.33,-24.4;
  • 字符常量:'a','R';
  • 字符串常量: "I Love You";
 printf("%d\n",100);  //整型常量
 printf("%f\n",3.14); //实型常量
 printf("%c\n",'A'); //字符常量
 printf("I Love you"); //字符串常量

在C语言中,可以用一个标识符来标识一个常亮,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:

 #define 标识符 常亮值;

符号常亮的标识符一般使用大写字母表示,变量的标识符一般习惯使用小写字母,方便区分。

常量是不可改变的

形参与实参

函数的参数分为形参和实参两种,形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数 实参是在调用时传递该函数的参数 函数的形参和实参具有以下特点:

  • 形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。
  • 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值等办法使实参获得确定值。
  • 在参数传递时,实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。

递归函数

例子:

#include<stdio.h>
int factorial(int n){
int result;
 if(n<0)
 {
   printf("输入错误!\n");
   return 0;
 }else if(n==0 || n==1)
 {
   result =1;
 }else{
   result=factorial(n-1)*n;  //调用自身
 }
 return result;
}
int main(){
  int n =5;
  printf("%d的阶乘=%d",n,factorial(n));
  return 0;
}

递归函数的特点:

  1. 每一级函数调用时都有自己的变量,但是函数代码并不会得到复制,如计算5的阶乘时每递推一次变量都不同;
  2. 每次调用都会有一次返回,如计算5的阶乘时每递推一次都返回进行下一次;
  3. 递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序;
  4. 递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反;
  5. 递归函数中必须有终止语句。

一句话总结递归:自我调用且拥有完成状态

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 进制基础

    今天梳理一下进制,学过计算机的童鞋应该都知道计算机执行的指令称作机器码(由0和1组成的二进制码)。 至于回头复习进制的原因:打算好好的复习一遍汇编语言,让基...

    用户1788308
  • Python笔记

    :在python原生list中的运用 通常一个切片操作要提供三个参数[start:stop:step]

    用户1788308
  • 振兴杯试题功能设计(准备)

    ## 前言 ## 我会根据自己所掌握的知识 尽量从基础开始一步步实现整个比赛试题功能,这会是一个漫长的过程,为了帮助学院新鲜血液能过通过实际项目一步步掌握相关...

    用户1788308
  • 如何进行小程序云函数开发

    在以前的文章中,我们给大家介绍了小程序的基本使用,近期微信团队联合腾讯云合作开发了一项新的产品,不用服务器就可以在小程序端进行服务端开发。为开发者提供完整的云端...

    英特奈特
  • ASP.NET MVC路由扩展:路由映射

    上周我写了三篇文章(一、二、三)详细地介绍了ASP.NET的路由系统。ASP.NET的路由系统旨在通过注册URL模板与物理文件之间的映射进而实现请求地址与文件路...

    蒋金楠
  • 史上最全存储引擎、索引使用及SQL优化的实践

    整个MySQL Server由以下组成 : Connection Pool :连接池组件 Management Services & Utilities...

    海仔
  • KVM+Qemu+Libvirt实战

    上一篇的文章是为了给这一篇文件提供理论的基础,在这篇文章中我将带大家一起来实现在linux中虚拟出ubuntu的server版来 我们需要用KVM+Qemu+L...

    用户1195962
  • idea玩转“码云”(二、项目上传码云)

    翟凤玺
  • RF-断言函数

    用户2149234
  • ES查询常见问题

    YG

扫码关注云+社区

领取腾讯云代金券