#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>”
#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”前面加一个负号