黑马程序员———学习C语言的一些笔记

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

static 和 extern

外部函数:定义的函数能被本文件和其他文件访问

内部函数:定义的函数只能被本文件访问,其他文件不能访问

默认情况下,所有函数都是外部函数。

//完整的定义一个外部函数:

extem viod test() //extern是可以省略的,默认都是省略的

{
printf("调用了test函数\n")
}

完整的声明一个外部函数:

extem viod test(); //可以省略extern, 默认情况下都是外部函数

定义一个内部函数:

static viod test2()
{
printf("调用了test2")
}

内部函数不能直接被其他文件访问,只能间接被访问

不允许有同名的外部函数,内部函数的名字一样在每个文件里面是不冲突的

static对函数的作用:

1.定义一个内部函数

2.声明内部函数
extern对函数的作用:

1.完整的定义一个外部函数

2.完整的声明一个外部函数

static和extern对变量的作用 :定义和声明一个内部和外部变量

外部变量:定义的变量能被本文件和其他文件访问
内部变量:定义的变量只能本本文件访问,不能被其他文件访问

默认情况下,所有的全局变量都是外部变量
不同文件中的同名外部变量都代表着同一个变量,可以重复定义

函数

任何一个C语言程序都是由一个或者多个程序段构成的,每个程序段都有自己的功能,我们一般称这些程序段为函数,所以,你可以说C语言程序是由函数构成的。

函数的定义

1.定义函数的目的
将一个常用的功能封装起来,方便以后调用

2.定义函数的步骤

函数名:函数叫什么名字
函数体:函数是干什么用的,里面包含了什么代码

3.格式

固定格式(很多语言的函数都是这么写的)

返回值类型 函数名(形式参数列表)

{
函数体

}

举例

定义一个函数,计算两个整数的和

sum(int a, int b)
{
int c =a+b;

}

形参和实参

形参:定义函数的时候要定义的变量,形参可以有无数个,在函数体不能定义和形参一样的变量

实参:在调用函数的时候传入函数的实际参数,实参必须要和形参一一对应

注意

如果是基本数据类型作为函数形参,纯粹是值传递,修改函数内部形参的值,并不会影响外面实参 的值

一个函数可以没有形参,也可以有无限多个参数

定义一个内部变量:

static int b; // 和定义一个内部函数的形式差不多

不同文件中的同名内部变量,互不影响

时间: 2025-01-02 16:38:54

黑马程序员———学习C语言的一些笔记的相关文章

黑马程序员学习笔记2014/7/5

观看视频:011_标识符_黑马程序员_Java基础视频.avi Java语言的基础组成 关键字.标识符.注释.常量和变量.运算符.语句.函数.数组.   关键字     标识符 1.在程序中自定义的一些名称 2.由26个英文字母大小写,数字,0-9符号 :_ $ 组成 3.定义合法标识符的规则: a.数字不可以开头 b.不可以使用关键字 4.Java中严格区分大小写 5.注意:在起名的时候尽量起一个有意义的名称       观看视频:012_常量_黑马程序员_Java基础视频 常量与变量 Jav

黑马程序员学习笔记-C指针小结

黑马程序员学习笔记-C指针 1. 指针简介: 指针是C语言中非常重要的数据类型,是C语言的精华 2. 指针变量定义: 格式:类名标识符 *指针变量名; 指针变量只能存储地址 指针就一个作用:能够根据一个地址值,访问对应的存储空间 指针变量p前面的int:指针变量只能指向int类型的数据 3.实例: 4. 注意点: 指针变量只能存储地址.指针变量未经初始化,不要拿来间接访问其他存储空间.指针变量的初始化可以int *p = &a;也可以拆分成两句:int *p; p =&a;.定义变量时的*

黑马程序员学习笔记_OC之给NSString增加分类

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>.<a href="http://www.itheima.com"target="blank">.Net培训</a>.期待与您交流! ---------------------- 黑马程序员学习笔记_OC

黑马程序员学习笔记-OC之foundation框架

黑马程序员学习笔记-OC之foundation框架 1.简介:foundation框架是其它所有ios框架的基础,包含了很多常用类型,结构体.枚举.类等. 2. 结构体:NSRange表示范围的结构体. NSPoint/CGPoint表示坐标点的结构体 NSSize/CGSize表示宽高的结构体 NSRect/CGRect表示坐标点+宽高的结构体 3. 类字符串:NSString  字符串类 NSMUtableString  易变字符串类 NSArray         数组类 NSMUtabl

黑马程序员-学习日记(面向对象)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1.面向对象  理解面向对象  面向对象是相对面向过程而言,面向对象和面向过程都是一种思想. 面向过程: 强调的是功能行为.代表语言:C语言. 例子:把大象装进冰箱 1.打开冰箱门.2.放入大象.3.关上冰箱门."打开"."存储"."关上"都是功能行为,在代码中的直观体现就是函数或者方法,这就是一种面向过程的以功能行为为主体的思想体现. 面向对

黑马程序员-学习日记(接口和多态)

1.继承 1-1 继承的概念 1-1-1 继承的概述 通过 extends 关键字让类与类之间产生继承关系. 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 多个类可以称为子类,单独这个类称为父类或者超类. 注意: ①子类可以直接访问父类中的非私有的属性和行为. ②子类无法继承父类中私有的内容.③父类怎么来的?共性不断向上抽取而来的. ExtendDemo.java class Person{ String name; int

黑马程序员学习笔记--------C语言变量类型,结构体,枚举

本章学习的知识是定义结构体,枚举等自定义的数据类型,已经宏命令,变量类型等细小的知识点,在开始本章的新知识学习之前首先我们要明白的是C语言有丰富的数据类型和运算符,因此计算能力非常强大,计算过程中使用的值一般用变量来存储.变量也是有分类型的,不同类型的变量有不同的存储类型.不同的生命周期.不同的作用域,C语言也提供了一些关键字来设置变量的属性(比如设置存储类型.生命周期). 一.变量类型 变量分为全局变量和局部变量. 首先说明一下局部变量的特点 1> 定义:在函数内部定义的变量,称为局部变量.形

黑马程序员学习心得------C语言复杂数据类型之指针

众所周知,指针是C语言中最重要也是最难的一种数据类型,这是C语言中与其他类似于Java等语言不同的直接操纵内存的一种数据.也有人如此形容指针的重要性“如果你C语言中除了指针都学得很好,信手拈来,唯独不会指针,那么你就是没学过C语言!”.下面来回忆一下这段时间学习指针的心得. 1 定义的格式: 指向内容的数据类型  *指针变量名 例如: int  *p; 2 指针的赋值问题 int a=10; int *p=&a;//指针p指向的a的地址值 int *p; p=&a  //这两种赋值都可以.

黑马程序员——经典C语言程序设计100例

1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘 10.打印楼梯并按条件打印笑脸 11.经典兔子问题 12.判断素数 13.水仙花数问题 14.正整数分解质因数 15.学习成绩划分 16.正整数求其最大公约数和最小公倍数 17.统计英文字母/空格/数字个数 18.求s=a+aa+aaa+aa...a的值 19.求解"完数" 20.球体自由落下物理问题