C语言入门学习

函数的调用

·传值调用:函数的形参和实参分别占用不同内存块,修改形参不影响实参。得到结果即可

·传址调用:把函数外部创建变量的内存地址传递给函数参数。改变结果

在参数传递时,实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配的错误。

三目运算符

表达式1 ? 表达式2 : 表达式3;

先判断表达式1的值是否为真,如果是真的话执行表达式2;如果是假的话执行表达式3。

do-while

do
{
执行代码块
}while(表达式);

它先执行循环中的执行代码块,然后再判断while中表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句

获得一个数的百位,十位和个位

百位数:num/100

十位数:num%100/10

个位数:num%10

在没有循环结构的情况下,break不能用在单独的if-else语句中。

在多层循环中,一个break语句只跳出当前循环。

 switch循环语句

switch(表达式)
{
    case 常量表达式1: 执行代码块1 break;
    ...
    case 常量表达式n: 执行代码块n break;
    default: 执行代码块n+1;
}

switch语句时应注意以下几点:

在case后的各常量表达式的值不能相同,否则会出现错误。
在case子句后如果没有break;会一直往后执行**一直到遇到break;**才会跳出switch语句。
switch后面的表达式语句只能是整型或者字符类型。
在case后,允许有多个语句,**可以不用{}**括起来。
各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
default子句可以省略不用。
 

switch语句通过将表达式的值与常量值进行比对,如果相等则执行后面的语句,如果不相等则跳到下一个case语句,当表达式和常量值相等,switch语句会将当前case语句以及后面所有的case语句全部输出。

&&:与

||:或

void函数中如果有return语句,该语句**只能起到结束函数运行的功能。**其格式为: return;

1.15 看到递归

递归函数

递归就是一个函数在它的函数体内调用它自身。

递归函数必须有结束条件

静态存储方式:是指在程序运行期间分配固定的存储空间的方式。静态存储区中存放了在整个程序执行过程中都存在的变量,如全局变量。
动态存储方式:是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储区中存放的变量是根据程序运行的需要而建立和释放的,通常包括:函数形式参数;自动变量;函数调用时的现场保护和返回地址等。
 

C语言中存储类别又分为四类:

  • 自动(auto)、
  • 静态(static)、
  • 寄存器的(register)
  • 外部的(extern)

1.用关键字auto定义的变量为自动变量,auto可以省略,auto不写则隐含定为“自动存储类别”,属于动态存储方式。

auto int a;

2.用static修饰的为静态变量,如果定义在函数内部的,称之为静态局部变量;如果定义在函数外部,称之为静态外部变量。

static int a;

3.“寄存器变量”,用关键字register作声明。

register int a;

局部静态变量不能定义为寄存器变量。

4.用extern声明的的变量是外部变量,某函数可以调用在该函数之后定义的变量、

int main()
{
    extern int a;
    printf("extern a = %d\n",a);
}
int a = 100;

内部函数和外部函数

  • 在C语言中不能被其他源文件调用的函数称谓内部函数 ,内部函数由static关键字来定义,因此又被称谓静态函数,形式为:
    static [数据类型] 函数名([参数])
  • 这里的static是对函数的作用范围的一个限定,限定该函数只能在其所处的源文件中使用,因此在不同文件中出现相同的函数名称的内部函数是没有问题的。
  • 在C语言中能被其他源文件调用的函数称谓外部函数 ,外部函数由extern关键字来定义,形式为:
    extern [数据类型] 函数名([参数])
  • 在没有指定函数的作用范围时,系统会默认认为是外部函数,因此当需要定义外部函数时extern也可以省略。

数组

C语言中的数组初始化是有三种形式的,分别是:

数据类型 数组名称[长度n] = {元素1,元素2…元素n};
数据类型 数组名称[] = {元素1,元素2…元素n};
数据类型 数组名称[长度n]; 数组名称[0] = 元素1; 数组名称[1] = 元素2; 数组名称[n-1] = 元素n;

注意:

  1. 数组在初始化的时候,数组内元素的个数不能大于声明的数组长度;
  2. 元素个数小于数组的长度时,多余的数组元素初始化为0;

C语言并不提供计算数组长度的方法。

数组的遍历:

int arr[3] = { 1,2,3 };
int i;
int main(void)
{
	for (i = 0;i < 3;i++)
	{
		printf("%d\n",arr[i]);
	}
	return 0;
}
  1. 最好避免出现数组越界访问,循环变量最好不要超出数组的长度.
  2. C语言的数组长度一经声明,长度就是固定,无法改变

c语言获取数组长度

int length = sizeof(arr)/sizeof(arr[0]);

//1.16 看到数组的应用

在C语言中,没有办法直接定义字符串的数据类型,但是可以利用数组来定义。

格式1:char 字符串名称[长度] = “字符串值”;

格式2:char 字符串名称[长度] = {‘字符1’,‘字符2’,‘字符3’,‘\0’};

注意:

[]中的长度是可以省略不写的;

采用第2种方式的时候最后一个元素必须是’\0’,’\0’表示字符串的结束标志;

采用第2种方式的时候在数组中不能写中文;

在输出字符串的时候要使用:printf(“%s”,字符数组名字);或者puts(字符数组名字)

\\1.17看到多维数组

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值