• C99开始,可以用变量来定义数组的大小;例如,利用键盘输入的变量来定义数组大小;
  • 赋值号左边的值叫做左值;
  • 关于数组:编译器和运行环境不会检查数组下标是否越界,无论读还是写。
  • 越界数组可能造成的问题提示语:segmentation fault
  • 程序员的责任:有效的下标值:[0,数组的大小-1]
  • 例:如下字符可以作下标
  1. int a[255];
  2. a['A'] = 1;

因为A的ascll码值小于255;

  • 安全的做法:数组使用之前初始化数组;
  • 函数的好处:把功能单纯且代码量大的部分封装为函数,提高可视性;
  • 代码复制:是程序质量不良的表现;
  • 初见函数:
#include<stdio.h> 

int get_sum(int start,int end)
{
int sum=0;
int i=0;
for(i=start;i<=end;i++)
{
sum+=i;
}
printf("从%d到%d的和是%d\n",start,end,sum);
} int main()
{
get_sum(1,10);
get_sum(20,30);
get_sum(35,45); return 0;
}

其中,在函数定义中参数表(int x,int y )内可以直接定义变量;且属于函数内的尽量全都放到函数内完成变量定义和打印等;

  • 使用函数的优点:

1.使程序变得更简短而清晰;

2.有利于以后的程序维护;便于团队开发分工合作

3.可以提高程序开发的效率;

4.提高了代码的可移植性。

  • 什么是函数:是一段代码,接收零个或多个参数,做一件事情,并返回零个或一个值;
  • 函数类型:当函数类型为void时,不返回任何值,无return;
  • return的两种写法

(1)return;-------结束函数的运行;

(2)return 表达式;------返回某一值;

  • 单一函数里面可以出现多个return语句;(缺点:违反了单一出口的设计理念)
  • C的编译器自上而下分析代码;
  • 函数的原型声名=函数的头+分号;且函数的原型声名里面可以不写参数的名字,如void sum(int ,int );
  • 新版本的C:函数的原型声名放在主函数的外面;
  • 形参与实参的类型不匹配是C语言传统上最大的漏洞,不严格。
  • C语言在调用函数的时候,永远只能传值给函数,不能倒传;每个函数有自己的变量空间,与其他函数没有关系;
  • 本地变量:函数内部的变量,参数;
  • 本地变量:可以定义在函数内或者块内;
  • 关于块(如if语句的大括号内):

定义在块内的变量在块外无效;

定义在块外的变量在块内有效;

  • 本地变量不会默认初始化;
  • 原型声名的时候参数表中一定不要空,即使没有输入参数最好也要写void;(但原则上可以不写,最好写)

如void sum(void);

  • C语言不允许函数的嵌套定义;
  • 16进制:0x开头
  • 8进制:0开头
  • 直接量即等价量
  • 任何非0整数值都是逻辑的true,例:while(!e)其中!e等价于e==0等价

于”当(!e)等于1的时候”;

  • void是保留字;IF,For不是保留字;
  • 错题本:&&运算时,当左边的为0时则不再进行右边的运算;
  • sizeof为静态运算符,编译时确定了值,运行时会忽略()中的运算,不再进行;例:如sizeof(i++),则不进行i++运算;
  • (double)(10/4*4)==8;因为未加.0,因此不会强制类型转换;

C语言学习记录_2019.02.07的更多相关文章

  1. C语言学习记录_2019.02.10

    sizeof:给出某个类型或某个变量在内存中占据的字节数:(1个字节8位,即8比特) 格式符 (1)%ld表示数据按十进制有符号长型整数输入或输出. (2)%d表示数据按十进制有符号整型数输入或输出. ...

  2. C语言学习记录_2019.02.23

    char类型的输出: scanf("%d",&i);//i=49; char x=i; printf("x=%d\n",x); printf(" ...

  3. C语言学习记录_2019.02.05

    switch只能判断整数,而分段函数的判别是一个范围,我们无法用整数来表示范围 跟踪语句的方法: (1)debug调试 (2)printf( )语句跟踪 小套路:当循环次数很大时,可以先模拟较小次数的 ...

  4. C语言学习记录_2019.02.04

    逻辑性变量的定义符:bool,在C语言中只有true和false: 定义方式:bool t = true; 逻辑运算符: !:逻辑非 &&:逻辑与 ||:逻辑或 表达区间的错误形式:4 ...

  5. C语言学习记录_2019.02.02

    变量在第一次被使用之前应该赋初值 scanf(“%d”,&price); scanf(“price%d %d”,&price);  scanf中的东西一定是要输入的东西. 定义常量:c ...

  6. C语言学习记录_2019.02.12

    "学计算机一定要有一个非常强大的心理状态,计算机不是黑魔法,都是人想出来的,别人能够想的出来,那么,总有一天,我也能够想的出来." 指针类型的变量就是保存地址的变量. int* p ...

  7. C语言学习记录_2019.02.09

    打印字符串:%s--------printf("%s","abcd"); 打印字符串数组中某一位:%c--------printf("%c" ...

  8. C语言学习记录_2019.02.08

    \n:换行:   \t:制表符,相当于大空格: a[5]={2};<------->a[5]={2,0,0,0,0}; 数组初始化的方法:a[5]={0};即全部初始化为0: 数组初始化的 ...

  9. C语言学习记录_2019.02.06

    break语句的作用:当执行到break,则跳出循环,免去不必要的循环次数,节省时间和资源.-----跳出循环,结束循环: continue:跳过这一次循环剩下的语句,进入到下一轮循环.-----跳到 ...

随机推荐

  1. linux rpm命令之查询包安装与否、包详细信息、包安装位置、文件属于哪个包、包依赖

    查询这个包是否已安装rpm -q 包名rpm -qa-q 查询-a all 查询已安装软件包和未安装软件包详细信息 rpm -qi 包名rpm -qip 包全名-i 查询软件信息-p package, ...

  2. 【Java】得到当前股票信息

    import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; ...

  3. Sass带来的变革_sass, scss 教程_w3cplus - Google Chrome

    Sass带来的变革 作者:大漠 日期:2014-11-17 点击:5291 sass scss 接触Sass差不多有一个年头了,在这一年来的时间中,也花了不少心思在Sass的学习上.同时也让自己喜欢上 ...

  4. Azure Document DB 存储过程、触发器、自定义函数的实现

    阅读 大约需要 4 分钟 在上一篇随笔中记录的是关于Azure Cosmos DB 中SQL API (DocumentDB) 的简介和Repository 的实现.本随笔是Document DB 中 ...

  5. 编写带有点击特效的UIButton

    编写带有点击特效的UIButton 效果: 源码: // // ViewController.m // Button // // Created by XianMingYou on 15/1/18. ...

  6. CSS学习摘要-定位实例

    CSS学习摘要-定位实例 注:全文摘自MDN-CSS定位实例 列表消息盒子 我们研究的第一个例子是一个经典的选项卡消息框,你想用一块小区域包括大量信息时,一个非常常用的特征.这包括含有大信息量的应用, ...

  7. ZT eoe android4.2 Bluetooth记录01-结构和代码分布

    android4.2 Bluetooth记录01-结构和代码分布 作者:cnhua5更新于 08月21日访问(697)评论(2) 在android4.2中,Google更换了android的蓝牙协议栈 ...

  8. Z :彻底了解指针数组,数组指针以及函数指针 [复

    原创 :彻底了解指针数组,数组指针以及函数指针 [复制链接] 00 roking 白手起家 帖子 60 主题 16 精华 0 可用积分 74 专家积分 0 在线时间 0 小时 注册时间 2003-10 ...

  9. SQL Server之JSON 函数

    SQL Server 2005开始支持XML数据类型,提供原生的XML数据类型.XML索引及各种管理或输出XML格式的函数.随着JSON的流行,SQL Server2016开始支持JSON数据类型,不 ...

  10. java枚举学习入门

    一.前言  在java编程过程中,我们通常需要定义一些固定数量的常量,在jdk1.5以前,通常的做法是定义一个静态常量类,但自jdk1.5后,java引入了枚举(关键字enum,全称为 enumera ...