首页 > 其他分享 >自学-C语言-基础-注释、变量、运算符、判断、循环

自学-C语言-基础-注释、变量、运算符、判断、循环

时间:2024-03-30 21:03:34浏览次数:17  
标签:语句 操作数 变量 int C语言 运算符 循环 自学

运行环境

Dev C++
Dev C++官网

认识C语言

C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。
C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。
C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。

在 1978 年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)制作了 C 的第一个公开可用的描述,现在被称为 K&R 标准。

UNIX 操作系统,C编译器,和几乎所有的 UNIX 应用程序都是用 C 语言编写的。由于各种原因,C 语言现在已经成为一种广泛使用的专业语言。

~易于学习。
~结构化语言。
~它产生高效率的程序。
~它可以处理底层的活动。
~它可以在多种计算机平台上编译。

创建运行环境

第一步
打开Dev c++后第一步

第二步
在这里插入图片描述

敲入所有语言都会敲的第一句话

Hello World

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
	printf("Hello, World! \n");
	return 0;
}

运行结果
在这里插入图片描述
新人第一次经常犯的错,就是每一代码后要敲上;分号

C语言注释

两个斜杠是单行注释
两个斜杠中间加两个星号

C语言使用变量是需要声明的

类型说明
char通常是一个字节(八位), 这是一个整数类型。
int整型,4 个字节,取值范围 -2147483648 到 2147483647。
float单精度浮点值。单精度是这样的格式,1位符号,8位指数,23位小数。
double双精度浮点值。双精度是1位符号,11位指数,52位小数。
void表示类型的缺失。

有些关键字是不能声明成变量的如下

关键字说明
auto声明自动变量
break跳出当前循环
case开关语句分支
char声明字符型变量或函数返回值类型
const定义常量,如果一个变量被 const 修饰,那么它的值就不能再被改变
continue结束当前循环,开始下一轮循环
default开关语句中的"其它"分支
do循环语句的循环体
double声明双精度浮点型变量或函数返回值类型
else条件语句否定分支(与 if 连用)
enum声明枚举类型
extern声明变量或函数是在其它文件或本文件的其他位置定义
float声明浮点型变量或函数返回值类型
for一种循环语句
goto无条件跳转语句
if条件语句
int声明整型变量或函数
long声明长整型变量或函数返回值类型
register声明寄存器变量
return子程序返回语句(可以带参数,也可不带参数)
short声明短整型变量或函数
signed声明有符号类型变量或函数
sizeof计算数据类型或变量长度(即所占字节数)
static声明静态变量
struct声明结构体类型
switch用于开关语句
typedef用以给数据类型取别名
unsigned声明无符号类型变量或函数
union声明共用体类型
void声明函数无返回值或无参数,声明无类型指针
volatile说明变量在程序执行中可被隐含地改变
while循环语句的循环条件

常量

常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。
常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。
常量就像是常规的变量,只不过常量的值在定义后不能进行修改。
常量可以直接在代码中使用,也可以通过定义常量来使用。
在这里插入图片描述
看不懂没关系,慢慢学慢慢总结

85         /* 十进制 */
0213       /* 八进制 */
0x4b       /* 十六进制 */
30         /* 整数 */
30u        /* 无符号整数 */
30l        /* 长整数 */
30ul       /* 无符号长整数 */

注意是零不是O

转义输出
\\ 字符
’ 字符
"" 字符
?? 字符
\a警报铃声
\b退格键
\f换页符
\n换行符
\r回车
\t水平制表符
\v垂直制表符
\ooo一到三位的八进制数
\xhh . . .一个或多个数字的十六进制数

在C语言里不转义是输出不出来本来的内容的。

#include <stdio.h>
 
int main()
{
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = '\n';
   int area;  
   area = LENGTH * WIDTH;
   printf("value of area : %d", area);
   printf("%c", NEWLINE);
   return 0;
}

运行结果
在这里插入图片描述

存储类问题

所知有四个
auto
register
static
extern

auto的作用是——auto int x;声明这个变量只能在函数内使用

register的作用是——register int miles;好像能读取更快,如果这个变量经常调用,就用这个存储类。

static的作用是——static int x;作用应该是,在文件声明周期都可以存在,不同的函数在同一个文件中,就可以调用static声明的存储类。

extern 的作用是——用来在另一个文件中声明一个全局变量或函数。extern 修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候。

运算符

算术运算符

假设变量 A 的值为 10,变量 B 的值为 20

运算符描述实例
+把两个操作数相加A + B 将得到 30
-从第一个操作数中减去第二个操作数A - B 将得到 -10
*把两个操作数相乘A * B 将得到 200
/分子除以分母B / A 将得到 2
%取模运算符,整除后的余数B % A 将得到 0
++自增运算符,整数值增加 1A++ 将得到 11
自减运算符,整数值减少 1A-- 将得到 9

关系运算符

运算符描述实例
==检查两个操作数的值是否相等,如果相等则条件为真。(A == B) 为假。
!=检查两个操作数的值是否相等,如果不相等则条件为真。(A != B) 为真。
>检查左操作数的值是否大于右操作数的值,如果是则条件为真。(A > B) 为假。
<检查左操作数的值是否小于右操作数的值,如果是则条件为真。(A < B) 为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。(A >= B) 为假。
<=检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。(A <= B) 为真。

逻辑运算符

运算符描述实例
&&称为逻辑与运算符。如果两个操作数都非零,则条件为真。(A && B) 为假。
ll称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。(A ll B) 为真。
!称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。!(A && B) 为真。

特殊记忆,&像一个鱼,同音与

赋值运算符

运算符描述实例
=简单的赋值运算符,把右边操作数的值赋给左边操作数C = A + B 将把 A + B 的值赋给 C
+=加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数C += A 相当于 C = C + A
-=减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数C -= A 相当于 C = C - A
*=乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数C *= A 相当于 C = C * A
/=除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数C /= A 相当于 C = C / A
%=求模且赋值运算符,求两个操作数的模赋值给左边操作数C %= A 相当于 C = C % A
<<=左移且赋值运算符C <<= 2 等同于 C = C << 2
>>=右移且赋值运算符C >>= 2 等同于 C = C >> 2
&=按位与且赋值运算符C &= 2 等同于 C = C & 2
^=按位异或且赋值运算符C ^= 2 等同于 C = C ^ 2
l=按位或且赋值运算符C l= 2 等同于 C = C l2

在C语言中一个等号是赋值,两个等号是判断

运算符描述实例
sizeof()返回变量的大小。sizeof(a) 将返回 4,其中 a 是整数。
&返回变量的地址。&a; 将给出变量的实际地址。
*指向一个变量。*a; 将指向一个变量。
? :条件表达式如果条件为真 ? 则值为 X : 否则值为 Y

最后一个三元运算符还是挺好用的

判断(也叫分支语句)

语句描述
if 语句 一个 if 语句由一个布尔表达式后跟一个或多个语句组成。
if…else 语句一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。
嵌套 if 语句您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。
switch 语句一个 switch 语句允许测试一个变量等于多个值时的情况。
嵌套 switch 语句您可以在一个 switch 语句内使用另一个 switch 语句。

if语句

if(表达式1)
语句1;
else if(表达式2)
语句2;

else if(表达式n-1)
语句n-1;
else
语句n;

#include <stdio.h>
int main ()
{
	int x=10;
	if(x<=20)
	{
		printf("x比20小");
	}
	printf("x=%d",x);
	return 0;
}

运行结果:
在这里插入图片描述

switch语句

switch语句可以处理多分支选择问题,根据其中break语句的使用方法(break语句为强制结束循环),一般分两种情况。
1、在switch语句的每个语句段中都使用break语句,也是switch语句的主要使用方法,一般形式为:
switch(表达式){
case 常量表达式1:语句段1; break;
case 常量表达式2:语句段2: break;

case 常量表达式n:语句段n; break;
default: 语句段n+1; break;
}

#include<stdio.h>
int main(){
    double value1, value2;
    char op;
    printf("请输入一个表达式:");
    scanf("%lf%c%lf", &value1, &op, &value2);//输入整数小数加减乘除格式,例:?+?
    switch(op){
        case '+':
            printf("%.2f + %.2f = %.2f\n", value1, value2, value1+value2);
            break;
        case '-':
            printf("%.2f - %.2f = %.2f\n", value1, value2, value1-value2);
            break;
        case '*':
            printf("%.2f * %.2f = %.2f\n", value1, value2, value1*value2);
            break;
        case '/':
            printf("%.2f / %.2f = %.2f\n", value1, value2, value1/value2);
            break;
        default:
            printf("请输入正确格式数据!\n");
            break;
    }
    return 0;
}

在这里插入图片描述

注意:在写条件的时候,一定注意是两个等号,一个等号是赋值

循环

循环类型

循环类型描述
while 循环当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。
for 循环多次执行一个语句序列,简化管理循环变量的代码。
do…while循环 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。
嵌套循环您可以在 while、for 或 do…while 循环内使用一个或多个循环。

循环控制语句

控制语句描述
break 语句终止循环或 switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句。
continue 语句告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。
goto 语句将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。

while循环

while的基本用法
在这里插入图片描述

for循环

for循环基本用法:

#include <stdio.h>
int main ()
{
	int y;
   for( y=0;y<10 ;y++ )
   {
	  printf("%d\n",y);
   }
   return 0;
}

运行结果:
在这里插入图片描述
因为for语句的三个条件不是必须的,所以是可以实现无限循环——

#include <stdio.h>
int main ()
{
   for( ; ; )
   {
      int x;
      x++;
	  printf("%d该循环会永远执行下去!\n",x);
   }
   return 0;
}

运行结果:
在这里插入图片描述

do while循环

do while的基本用法

#include <stdio.h>
int main (void)
{ 
	int i = 1;	
	do			
	{
		printf("数值为:%d\n",i);
		i++;
	}
	while(i<=10);   //先执行语句,在判断结果。
	return 0;
}

运行结果:
在这里插入图片描述
while和do while的区别——
一个是判断通过进入循环,一个是判断通过离开循环
在这里插入图片描述
学到这C语言最基础的部分就结束了!

在这里插入图片描述
在这里插入图片描述

标签:语句,操作数,变量,int,C语言,运算符,循环,自学
From: https://blog.csdn.net/qq_53746717/article/details/137139328

相关文章

  • C语言学习笔记day17
    1.结构体类型得定义      struct结构体名{         数据类型1成员变量1;         数据类型2成员变量2;         数据类型3成员变量3;         ...      };2.结构体变量得定义      存......
  • 网络安全(黑客)——2024自学
    01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有W......
  • 网络安全(黑客)——自学2024
    01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有W......
  • 黑客技术(网络安全)自学2024
    01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有W......
  • 黑客(网络安全)技术自学——高效学习
    01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有W......
  • 自学(网络安全)黑客——高效学习2024
    01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有W......
  • 自学黑客(网络安全)技术——2024最新
    01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有W......
  • 网络安全(黑客)技术——自学2024
    01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有W......
  • 黑客(网络安全)技术自学30天
    01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有W......
  • 黑客(网络安全)技术速成自学
    01什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,也有W......