c语言基础知识(2)

C语言基础知识

小白必备

4.变量 ,常量

不变的值,在c语言中用常量表示,反之,用变量所表示。

变量分类:

局部变量 全局变量

#include<stdio.h>
int num2 =20;//全局变量一定在代码块({})之外的变量
int main()
{
int num1 =10;//局部变量在代码块({})内部的变量
return 0;
}

当局部变量和全局变量同名时,局部变量优先。
eg.
#include<stdio.h>
int num1 =200;
int main()
{
int num1 =10;
printf("%d\n",num1);//局部变量和全局变量的名字建议不要相同,容易产生误会,产生bug
return 0;
}
结果:10

变量的使用:

eg. 两个数的相加
#include<stdio.h>
int main()
{
int num1=0;
int num2=0;
int sum=0;
//输入数据----使用输入函数scanf
scanf("%d%d",&num1,&num2);//取地址符&
sum=num1+num2;
printf("%d",sum);
return 0;
}

变量的作用域和生命周期

作用域:限定这个变量可用性的代码范围

1.局部变量的作用域是变量所在的局部范围
2.全局变量的作用域的整个工程

生命周期
1.局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束
2.全局变量的生命周期:整个程序的生命周期

常量

1.字面常量
eg.
#include<stdio.h>
int main()
{
int num=4;
3.14//字面常量
return 0;
}
2.const 修饰的常变量
eg.
#include<stdio.h>
int main()
{
const int num=4;//const 修饰常变量
printf("%d\n",num);
num=5;
printf("%d\n",num);
return 0;
}
输出:4,4
注意:const修饰的常变量不能用于数组内,数组内只能用常量。
3.#define定义的标识符常量
#define MAX 10
int main()
{
int arr[MAX]={0};
printf("%d\n",MAX);
return 0;
}

4.枚举常量:一一列举

枚举关键:enum
eg.
enum Sex
{
MALE,
FEMALE,
SECRET
};
//MALE ,FEMALE,SECRET----枚举常量
int main()
{
printf("%d\n",MALE);//0
printf("%d\n",FEMALE);//1
printf("%d\n",SECRET);//2
return 0;
}

5.字符串,转义字符,注释

字符串
由双引号引起来的一串字符为字符串
注意:字符串结束的标志位 \0 的转义字符,在计算字符串长度时,\0是结束标志,不算做字符串的内容。
eg.“abcdf”

int main()
{
char arr1[ ]=“abc” ; //数组
//“abc”={‘a’,‘b’,‘c’,’\0’} ------ \0为结束标志
char arr2[ ]={‘a’,‘b’,‘c’,0} ;
printf("%s\n",arr1);//%s —输出数组
printf("%s\n",arr2);
return 0;
}
输出:相同,若arr2[ ]={‘a’,‘b’,‘c’} ,则会出现乱码

#include<stdio.h>
int main()
{
char arr1[ ]=“abc” ;
char arr2[ ]={‘a’,‘b’,‘c’} ;
printf("%d\n",strlen(arr1)); //strlen----计算字符串的长度
printf("%d\n",strlen(arr2));
return 0;
}
输出:3,随机值

转义字符

即转变意思
在这里插入图片描述

注释

两种风格:
1.C语言风格/*xxxxxxxxx */
缺点:不能嵌套
2.C++风格 //xxxxx
可注释一行或多行

用处:代码较难懂,故注释一下

6.选择语句

(if…else…)
#include<stdio.h>
int main()
{
int input =0;
printf(“你要好好学习吗?(1/0)”);
scanf("%d\n",&input);
if(input==1)
{
printf(“走上人生巅峰”);
}
else
{
printf(“回家卖红薯”);
}
return 0;
}

7.循环语句

1.while循环
2.for循环
3.do…while
eg.
#include<stdio.h>
int main()
{
int a=200;
printf("'进入健身房\n");
while(a>90)
{
printf(“减肥体重为%d\n”,a);
a–;
}
if(a<=90)
{
printf(“减肥成功!”);
}
return 0;
}

8.函数

简化代码,代码复用
分为:自定义函数,库函数
eg.
#include<stdio.h>
int Add(int x,int y)
{
int z=x+y;
return z;
}
int main()
{
int num1=0;
int num2=0;
int sum=0;
scanf("%d%d",&num1,&num2);
sum=Add(num1,num2);
printf(“两数之和为%d\n”,sum);
return 0;
}

9.数组

一种相同元素的集合
#include<stdio.h>
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};//定义一组整型数组
printf("%d\n",arr[4]);//下标的方式访问元素

return 0;
}
输出:5

arr数组

     1 2 3 4 5 6 7 8 9 10

下标 0 1 2 3 4 5 6 7 8 9
默认从0开始
打印全部的数组(可以与循环相结合)
eg.
#include<stdio.h>
int main()
{
int i=0
int arr[10]={1,2,3,4,5,6,7,8,9,10};
while(i<10)
{
printf("%d",arr[i]);
i++;
}
return 0;
}

10.操作符

% ---- 取模(取余数)
#include<stdio.h>
int main()
{
int a=5%2;
printf("%d\n",a);
return 0;
}
输出:1

<<,>> -----移位操作符(左/右移)
#include<stdio.h>
int main()
{
int a=1;
//整型1占4个字节,32bit位
//0000000000000000000000000000001 (二进制)
int b =a<<2//左移两个,少的补0
printf("%d\n",b);
printf("%d\n"a);//本身不变
return 0;
}
输出:3,1

& ^ | ---- 位操作符

即 与,异或,或
异或规律:对应二进制位相同,则为0,相异,则为1.

#include<stdio.h>
int main()
{
int a=3;
int b=5;
int c=a^b;
printf(“%d\n”,c);
return 0;
}

赋值操作符

#include<stdio.h>
int main()
{
int a=3;//=赋值, ==为判断
a=a+3//等同于a+=3
a=a-3//等同于a-=3
a=a&3//等同于a&=3
//复合赋值符
//+=, -=, /= ,%= ,>>=, <<=, !=, ^=
return 0;
}

单目操作符

在这里插入图片描述

#include<stdio.h>
int main()
{
int a=10;
int b=a++;//后置++,先使用,再++
printf(“a=%d b=%d\n”,a,b);//11,10
return 0;
}

#include<stdio.h>
int main()
{
int a=10;
int b=++a;//前置++,先++,后使用
printf(“a=%d b=%d\n”,a,b);//11,11
return 0;
}
(–同理)

(强制转换)
#include<stdio.h>
int main()
{
int a=(int)3.14;//double强制转换int
return 0;
}

关系操作符

在这里插入图片描述

逻辑操作符

在这里插入图片描述

#include<stdio.h>
int main()
{
//真—非0
//假–0
int a=0;
int b=5;
int c=a&&b;
printf("%d",c);//0
return 0;
}

条件操作符

表达式1?表达2(真):表达3(假)
max=(a>b?a:b);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值