C语言:局部变量和全局变量以及操作符

本文介绍了C语言中的基本概念,如全局变量和局部变量的区别,sizeof和strlen操作符的作用,以及printf和scanf的用法,同时涵盖了整数运算符和类型转换等内容。
摘要由CSDN通过智能技术生成
#include<stdio.h>

int a = 2;//这个a是全局变量//第一次给变量赋值叫做初始化

int main()

{

       a = 3;//这里a是局部变量
       printf("%d",a);

       return 0;

}

在main函数里面a为3,出了main函数,a就是2。局部变量就是只在局部生效,全局变量就是在全局生效,如果在某一个局部另外给变量赋值,在这个局部新赋的值生效。

一.  sizeof操作符和strlen操作符

1.  sizeof是一个操作符,也是一个关键词,是用来计算操作符数的类型长度,单位是字节

sizeof的操作数可以是类型,也可以是变量或者表达式,格式如下:

     1.sizeof(类型)

     2.sizeof表达式

sizeof的操作数如果不是类型。是表达式的时候,可以省略掉后面的括号的。它的返回值类型是size-t。

注意:sizeof求字符串内存长度时,后面还有个隐藏的“\0”也会被计算,如果打印出来一个字符串的内存空间。打印结果就是用加上“\0”的字符串长度乘以一个该数据类型占据的空间。而strlen不会计算“\0”,只计算表面的字符串长度。

#include<stdio.h>
int main()
{
	char add[] = {"abcdef"};//这是字符串
	char acc[] = {'a','b','c','d','e','f'};//这是多个字符组成的数组
	printf("%d\n",sizeof(add));//一个char类型占据1个字节,一个int类型占据4个字节
	printf("%d\n", sizeof(acc));
	return 0;
}

2. strlen就是求字符个数的操作符。

只有一点需要注意的是:运用此操作符时,要引用头文件“#include<string.h>”

二.   双目操作符(有两个操作数的操作符)
 1. “/”除法操作符(除号的两边如果都是整数,执行的是整数除法)(如果要计算小数除法,除号两边至少要有一个小数,小数就是浮点数。%f和%lf打印小数时,默认打印6位小数)
#include<stdio.h>
int main()
{
	int a = 2;
	float b = 3.0;
	float add = a / b;
	printf("%.2f", add);//"%"和"f"之间的".2",表示保留两位小数。同理,如果是".3",就是保留三位小数。
	return 0;
}

注意:在字符串中,printf("%.2s",add);就是表示保留2个字符(再次注意:不是最高保留两位,是哪怕不够两个,编译器也会用空格凑够两个)

2.乘法操作符和除法操作符使用方法近似

3."%"求余操作符。就是求余数的。(这个操作符的操作数只能是整数,不可以作用于浮点数)

#include<stdio.h>
int main()
{
	int a = 2;
	int b = 3;
	int add = a % b;
	printf("%d",add);
	return 0;           //结果是2/3,结果为0,余数为2,所以此处add打印结果就是2.
}

4.+和-这两个就不用多说了,单纯的加减运算

5.

赋值操作符:=

注意在c语言“=”是赋值号,不是等于号.

这个才是等于号“==”

以下代码可供参考

#include<stdio.h>//这个才是等于号“==”
int main()
{
    int a = 1;//初始化
    int b = 9;//初始化
    int c = 0;//初始化
    c = a; //把a的值赋给c,a现在空了
        a = b;// 把b的值赋给已经空了的a
        b = c; //把c的值赋给b
        printf("%d %d", a, b);

}

三.  单目操作符(只有1个操作数的操作符)

1‘’前置++(++是一种自增的操作符)

诀窍:先+1,后使用。以下代码可供参考

#include<stdio.h>
int main()
{
	int a = 9;
	int b = ++a;//先+1,a=a+1=9+1=10,后使用,b=10;
	printf("%d %d",a,b);
	return 0;
}

2.  后置++

诀窍:先使用,再+1

#include<stdio.h>
int main()
{
	int a = 9;
	int b = a++;//先使用:b=a;a=a+1
	printf("%d %d",a,b);
	return 0;
}

3.  前置--和后置--与++使用方法相同

4.  强制类型转换  形式如下:

(类型)

int a=9.99;(9.99是个浮点数,而前面的数据类型是整形,编译器会警告)

下面是用强制类型转换来修改的:

int a=(int)9.99

四.  printf和scanf的用法

1. printf不用说太复杂,就是用来打印东西的。scanf说简单点就是来获取一个或多个变量来进行接下来的操作。

代码示范如下:

#include<stdio.h>//利用scanf获取10个数放入数组中,然后再输出
int main()
{
	int arr[10] = {0};//定义一个数组,给10个空间,初始化为0
	for (int i = 0; i < 10; i++)
	{
		scanf_s("%d",&arr[i]);//vs2022在使用scanf时,需要加上"_s".
	}
	for (int j = 0; j < 10; j++)
	{
		printf("%d\n",arr[j]);
	}
	return 0;
}

注意:  scanf后面有个“&”,别忘了

2.  printf的占位符

简单点说,就是给你打印出来的数据设置一个最低位数,如果小于最低位数,数据前面就会你相应数量的空格,使空格加上数据等于那个最低位数;如果超过最低位数,该打多少个数据,就打多少个。下图有5个数,而设置的最低位数是2,而本来就要打印5个,超过最低位数2了,就还打印5个。

而下面这个第二个printf设置的最低位数是2个,所以前面有一个空格,加上空格就是两个了。

如果想让空格在右边,就在“2d”前面加一个负号

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值