初识C语言——操作符详解

目录:

 一、 strlen与sizeof的区别

二、static的前世今生

三、关键字 typedef

   


 一、 strlen与sizeof的区别

首先strlen是一个库函数,strlen是求字符串长度的,关注的字符串中是否有\0,统计\0之前出现的字符个数,而sizeof是一个操作符,sizeof只关注占据了多大的内存空间,不关注内存中存放的数据本身,且sizeof的返回值的单位是字节。

eg:

 #include <stdio.h>
int main()
{
	char arr1[] = "abc";
	char arr2[] = { 'a','b','c' };
	printf("%d\n", strlen(arr1));
	printf("%d\n", strlen(arr2));
	printf("%d\n", sizeof(arr1));
	printf("%d\n", sizeof(arr2));
	return 0;
}

由于arr2中没有\0,所以打印出来的为随机值。


  二、static的前世今生

在C语言中: static是用来修饰变量和函数的

1. 修饰局部变量-称为静态局部变量

2. 修饰全局变量-称为静态全局变量

3. 修饰函数-称为静态函数


未用static修饰的局部变量:

用static修饰的局部变量:

原因:static修饰局部变量的时候,改变了局部变量的存储类型,普通的局部变量是存储在栈区,被static修饰的变量是存储在静态区的,存储在静态区的变量,出了作用域不会消毁,依然存在,所以静态变量的生命周期就是程序的生命周期。程序结束的时候,静态变量才回收空间。所以其生命周期变长了,而作用域不变。


 

 未用static修饰的全局变量:

用static修饰的全局变量:

全局变量具有外部链接属性,static修饰全局变量的时候,这个全局变量的外部链接属性就变成了内部链接属性,这个全局变量只能在自己所在的.c文件中看到,其他源文件中看不到。


 未用static修饰函数:

使用static修饰函数:

 


 三、关键字 typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名。

//将unsigned int 重命名为uint_32, 所以uint_32也是一个类型名
typedef unsigned int uint_32;
int main()
{
    //观察num1和num2,这两个变量的类型是一样的
    unsigned int num1 = 0;
    uint_32 num2 = 0;
    return 0;
}


附思维导图: 

 

 

 

  • 19
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

{Hello World}

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值