函数,字符二维数组

练习:字符串比较(不使用strcmp)

遍历字符串,当两者字符相等并且str1[i]和str2[i] 都不等于'\0'时,继续向后遍历

while(str1[i] == str2[i] && str1[i] != '\0'){
//&&全真为真,能运行到这 说明str1[i]=str2[i],所以只需判断str1[i]是否等于'\0'
    i++;
}
ret = str1[i]-str2[i];

变量的作用域和生存周期
作用域:变量能够使用的范围
1.局部变量
   局部变量作用域在离定义该变量最近的大括号内
 2.全局变量
  全局变量作用域在整个文件中
生存周期:变量从开始被创建,到空间被回收的整个过程 


1.自动型存储(局部存储)(默认存储类型)
    auto int a;
 将变量存放到栈区中:
  1.未经初始化值为随机值
   2.代码执行到变量定义时为变量开辟空间
  3.超过变量的作用域回收变量空间
 2.静态存储
   static int a;
 将变量存放到数据区中:
1.未经初始化前值为0值
 2.编译时为变量开辟空间
 3.代码执行结束回收变量空间

 除了修饰静态变量,还有2个功能:
1.限定变量的作用域只能在本文件中使用
 2.可以防止多个文件中的全局变量重名

变量类型

未初始化的值

何时开辟空间

何时回收空间

作用域

全局变量

0

编译时

代码执行结束

本文件内

局部变量

随机值

代码执行到变量定义时

超过变量作用域

离定义该变量最近的大括号内

静态变量

0

编译时

代码执行结束

离定义该变量最近的大括号内

例:

int main(){

       { static Num ;}

        Num = 100;

}

Num不会赋值成功,static变量编译时,就会开辟空间,代码执行结束时回收变量但作用域还是离它最近的{},超过作用域,就不能使用了,但它在内存中存在.

  3.寄存器存储
  register int a;
 优先存放到CPU内部的寄存器中,如 果寄存器存满了,等价于auto存放在栈区中
             
 4.外部存储
 extern int a;
 声明一个变量或函数是在外部存储的

相关推荐

  1. C 多数组、特殊字符字符串函数详解

    2024-07-22 21:52:02       50 阅读
  2. 数组调整

    2024-07-22 21:52:02       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 21:52:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 21:52:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 21:52:02       45 阅读
  4. Python语言-面向对象

    2024-07-22 21:52:02       55 阅读

热门阅读

  1. redis常用指令

    2024-07-22 21:52:02       15 阅读
  2. 多站点环境下Memcached的配置与管理

    2024-07-22 21:52:02       18 阅读
  3. Vue3 深入组件

    2024-07-22 21:52:02       16 阅读
  4. Leetcode热题100 Day4

    2024-07-22 21:52:02       15 阅读
  5. Python每日学习

    2024-07-22 21:52:02       15 阅读
  6. web前端 React 框架面试200题(七)

    2024-07-22 21:52:02       15 阅读
  7. 鸡兔同笼求解器

    2024-07-22 21:52:02       17 阅读