C语言学习笔记03:C语言_字符串_局部变量_全局变量_指针

C语言第七课程笔记

每一天的笔记包含如下内容:

  1. 当天授课内容安排
  2. 课堂重点内容笔记
  3. 课后思考题

1. 内容安排

第一节课: 字符串理解和语法语法(字符串理解、字符串定义语法、字符串输入和输出、字符串使用注意)
第二节课: 字符串操作函数(字符串长度、字符串拷贝、字符串追加)
第三节课: 字符串操作函数(字符串比较、格式化字符串、字符串转数字)、登陆验证案例
第四节课: 字符串操作训练(计算字符串长度、字符串拷贝、字符串比较)
第五节课: 函数理解和语法(函数作用、函数语法)、函数声明作用
第六节课: 局部变量和全局变量、函数定义中的注意点

2. 课堂笔记

课堂主要内容、重要内容。

2.1 字符串语法
  1. 字符串以\0结尾的字符数组,用于保存文本类型数据.
  2. 双引号括起来的字符串会自动在最尾部增加 \0 字符.
  3. 字符串定义格式 char s[] = "hello world".
  4. 字符串使用 %s 作为字符串输出站位符.
  5. Scanf 接收字符串输入时,默认碰到空格或者制表符、换行会停止读取输入内容.
  6. get_s 函数会读取键盘数据,直到达到指定长度字符数量、或碰到换行符.
2.2 字符串操作
1. 字符串拷贝:
  	1. strcpy, 将一个字符串全部拷贝到另外一个字符串中
  	2. strncpy,将一个字符串中指定长度拷贝到另外一个字符串中
2. 字符串长度:
	1. strlen,计算字符串长度,不包含 \0
	2. sizeof,计算字符串长度,包含 \0
3. 字符串拼接:
	1. strcat,将一个字符串拼接到另外一个字符串尾部
	2. strncat,将一个字符串指定长度拼接到另外一个字符串尾部
2.3 函数注意点

返回值:

1. C语言只允许函数返回一个结果
2. 函数没有返回值必须写 void
3. 函数的返回值可以忽略
4. 函数返回值定义的类型,一定要和函数实际返回的结果类型匹配,或者相互转换.

参数

1. 函数参数的个数可以有任意个.
2. 如果函数没有参数,必须要写 void
3. 函数的参数叫做形参,函数调用的时候分配内存,函数执行结束,参数的内存被释放。

函数体

1. 函数体可以为空
2. 函数定义不允许嵌套定义,只能在全局范围定义

函数名

1. 符合标识符的命名规则即可.
2. C语言中用小写+下划线.
2.4 void 用法

// void 用法

// 1. void 表示函数没有返回值

// 2. void 表示函数没有参数

// 3. void 表示忽略函数的返回值

// 4. void 表示忽略某个未使用的变量

2.5 局部变量全局变量
  1. 局部变量在函数内部定义, 函数的形参、内部定义临时变量。
    1. 局部变量只能在函数内部访问
    2. 从内存角度, 函数调用的时候才会分配内存,函数执行结束,局部变量内存回收.
  2. 全局变量在函数外部定义
    1. 全局变量可以在项目中任何文件、任何位置访问
    2. 从内存角度,全局变量在 main 函数执行之前创建,在程序结束之后释放内存。
  3. 如果全局变量和局部变量同名,默认在函数内部访问的是局部变量(就近原则)
2.6 函数声明
  1. 编译器看到函数调用,必须会做的工作, 函数调用检查:
    1. 函数的返回值检查
    2. 函数的参数检查
  2. 为了让编译器能够进行必要的函数调用检查,编译器必须要先看到函数声明或者函数定义.
  3. 函数声明语法:
    1. 把函数体的花括号去掉
    2. 函数声明中,形参名字可有可无
2.7 return 关键字的作用

// 1. 当函数执行到 return 语句的时候,函数马上终止执行,后续代码不再执行.

// 2. return 后面可以跟值、也可以不跟值(返回值类型是void).

// 3. return 后面既可以写变量、也可以写常量

// 4. return 返回值的类型一定要和函数的返回值类型匹配, 或者能够转换为返回值类型

C语言第八课程笔记

每一天的笔记包含如下内容:

  1. 当天授课内容安排
  2. 课堂重点内容笔记
  3. 课后思考题

1. 内容安排

第一节课: 函数设计原则、函数分文件编写
第二节课: 函数强化训练(计算数组中的偶数和、实现数组逆序、实现字符串转换为小写)
第三节课: 函数强化训练(输入半径计算面积、返回指定范围累加和、实现数组排序)
第四节课: 指针语法(指针变量定义、指针大小、指针初始化、指针解引用)、指针变量和普通变量区别
第五节课: 指针操作(指针类型、解引用、指针运算)、无类型指针、野指针
第六节课: const和指针、指针和数组名

2. 课堂笔记

课堂主要内容、重要内容。

2.1 函数设计基本原则

​ .h 头文件中编写函数声明,不能编写函数定义.

.c 文件中编写函数定义.

基本原则:

  1. 函数的规模要小,尽量控制在50行代码以内.

  2. 函数的功能要单一,不要让它身兼数职. 单一职责原则

  3. 在函数入口处对参数进行合法校验.

    int my_divide(int a, int b)
    {
      if(0 == b)
      {
     		return -1;  
      }
    	
      int ret = a / b;
    
    	return ret;
    }
    
  4. 当函数中返回结果时,确保所有控制分支都有返回值.

    int my_func()
    {
      
      if()
      {
        return 0;
      }else if()
      {
        
        return 0;
      }else
      {
        
        return 0;
      }
      
    }
    
2.2 指针变量和普通变量区别
  1. 普通变量需要占用一定大小的内存空间,指针变量也需要占用一定大小的内容空间.
  2. 普通变量需要先定义再使用,指针变量也需要先定义再使用
  3. 普通变量内存中保存的是数据,指针变量保存的地址.
  4. 普通变量可以进行加减乘除、赋值等运算,指针只能进行加减、赋值运算.

使用指针原则:

  1. 明确指针指向哪里.
  2. 明确指针指向内存单元的数据类型是什么?内容是什么?
2.3 指针变量理解
  1. 从内存角度,指针变量、普通变量没有啥区别,都是一块内存,并且这块内存都有地址。
    唯一的区别:普通变量存储数据,指针变量存储地址

  2. 普通变量有普通变量运算规则,指针变量有指针变量的运算规则。取值、赋值、加减运算

  3. 从语法角度, 指针变量多了个标识*,以此表示这个变量中存储的是地址。

  4. 指针无论什么类型、无论几级指针统统都是4个字节(32位) 8字节(64位)

  5. 在相同平台上,无论什么类型的指针占用内存大小都是一样的

  6. 对指针变量取地址,才能拿到指针变量本身所占用的空间地址。如果直接使用指针变量,那么代表的是指针指向空间的地址。

2.4 修改一个变量的值

​ 修改一个变量的值,有两种:

​ 1. 通过变量名直接修改(前提你得能拿到变量名)

​ 2. 通过指针间接修改(不需要拿到变量名,只需要变量地址即可)

在函数内部定义的变量只能在函数内部访问,如果想在其他函数中修改另外一个函数内的变量。只要该函数拿到这个变量的地址即可。

2.5 指针类型
  1. 指针类型不同,那么指针的步长就不同

    char * 类型指针,步长是1个字节

    int * 类型指针,步长是4个字节

    double * 类型指针,步长是8个字节

  2. 当解引用的时候,指针类型决定了编译器从首地址开始取多少字节。

  3. 无类型指针, 没有步长、不能解引用。 无类型指针占用4字节或8字节。

  4. 任何类型转换为无类型指针的时候,不需要强制转换

2.6 指针和数组
  1. 数组名就是指向首元素的类型指针,数组名不能修改指向。
  2. 当数组名作为函数参数的时候,会被编译器转换为指针。
  3. 基础数据类型传参的时候,值传递。数组在传参的时候,是地址传递。

C语言第九天课程笔记

每一天的笔记包含如下内容:

  1. 当天授课内容安排
  2. 课堂重点内容笔记
  3. 课后思考题

1. 内容安排

第一节课: 回顾指针理解、指针和字符串
第二节课: 指针数组(整型指针数组、字符串指针数组)、const和指针
第三节课: 指针做函数参数、指针做函数返回值
第四节课: 多级指针(多级指针理解)
第五节课: 实现返回数组最值和平均值、指针实现数组冒泡排序
第六节课: 指针实现字符串拷贝、指针实现字符串拼接、指针实现字符统计

2. 课堂笔记

课堂主要内容、重要内容。

💗💗💗

print("如果文章对你有用,请点个赞呗O(∩_∩)O~")
System.out.println("如果文章对你有用,请点个赞呗O(∩_∩)O~");
cout<<"如果文章对你有用,请点个赞呗O(∩_∩)O~"<<endl;

💗💗💗

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Robotframework变量知识点总结 ⽬录 变量与常量 常量 环境变量 数值常量 特殊字符常量和系统保留常量 Scarlar变量 变量赋值 Set 赋值 Get 赋值 命令⾏赋值 变量使⽤ 在判断中使⽤ 字符串使⽤ List变量 变量赋值 Set Variable Create List 变量使⽤ List 元素的使⽤ 变量转换 List转换成Scarlar Scarlar转换成List 其他变量 变量⽂件 ⼀,变量与常量 1. 变量都⽤{变量名}表⽰。变量主要有两类:scalar类和List类。Scalar 类表⽰为 ${变量名},List类表⽰为 @{变量名}。 2. RF的底层语法是Python,所以不需要特别声明变量,只需要进⾏初始化赋值。若需要添加声明在TestSuite右键单击,或者Edit区单 击"Add Scala"或者"Add List",添加变量。 3. ⽆论是scala变量还是List变量都可以通过Set Variable进⾏赋值。 4. 通常情况下,变量都是局部变量,默认情况下各个变量的作⽤域不同,具体如下: ⼀个case中的变量,作⽤域在这个case内部。 ⼀个userKeyword⾥的变量,作⽤域在这个userKeyword内部。 ⼀个⽂件型suite⾥的变量,作⽤域在这个suite内部,* 其下所有case可⽤该变量,其下的suite⽂件型⽆法使⽤该变量 * 。 ⼆,常量 常量主要有环境变量(%),数值常量( $ ),特殊字符常量($ ),系统保留变量($ )。 环境变量 定义: %{变量名称} 修改⽅式: 只能在定义的地⽅去修改。RF只能使⽤,不能编辑 数值常量 通常情况下。RIDE中所有字符会被当做字符串,即使变量的值是数值,默认以字符串的形式存在。 定义:${2.6} 特殊字符常量和系统保留常量 特殊字符常量主要有 ${/},${:},${EMPTY},${False},${None},${Null},${SPACE},${True}, 其都是系统保留常量 三,Scalar变量 (⼀)变量赋值 Scalar变量赋值⽅法有三种: set赋值, Get赋值, 命令⾏赋值。 Set赋值 ${val2} ${val2} Set Variable Set Variable abcd abcd ${val3} Set Variable If '${val2}'='abcd' efgh ijk 第⼀变量val2赋值为abcd。第⼆个变量判断如果${val2}的值为abcd则赋值 ${val3}为efgh,否则赋值 ${val3}为ijk Get赋值 ${get_val1} ${get_val1} Get Length Get Length ${val2} ${val2} ${get_val2} Get Time 第⼀个变量获取的是长度,第⼆个变量获取的是时间。 命令⾏赋值 -v val:变量值 (⼆)变量使⽤ 1,在判断中使⽤ ${val2} ${val2} Set Variable Set Variable abcd abcd ${val3} Set Variable If '${val2}'='abcd' efgh ijk 2,字符串使⽤ 2.1,把变量作为字符串的⼀部分 log log 0123${val2}456 0123${val2}456 log 0123+${val2}456 第⼀⾏会把 ${val2} 添加到0123和456中间去。第⼆⾏会把+ ${val2}添加到0123和456中间去。 2.2 ,字符串截取 log log ${val2[2]} ${val2[2]} log ${val2[0:3)} 第⼀⾏返回${val2}的第3个字符串(python字符串从0开始)。第⼆⾏截取下标为0,1,2的字符串(相当于[0:2])。 2.3 ,参与运算 ${cal1} ${cal1} Set Variable Set Variable 123 123 ${cal2} Evaluate ${cal1}+1 返回结果为${cal2}=124 ${cal1} ${cal1} Set Variable Set Variable '123' '123' ${cal2} Evaluate Int(${cal1})+1 ${cal1}为字符串,需转换成int类后才能改进⾏Evaluate的加法运算。 四,List变量 (⼀)变量赋值 Scalar变量赋值⽅法有两种:Set Variable和Creat Variable @{val3} @{val3} Set Variable Set Variable 1 1 2 2 3 3 ${listVal3} Create List 4 5 6 打印之后的结果:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值