C语言基础[通俗易懂]

C语言基础[通俗易懂]C语言基础

大家好,又见面了,我是你们的朋友全栈君。

基本类型

short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。
在这里插入图片描述

三大循环

for while 和 do{ }while;

四大跳转 :

无条件跳转语句 go to;
跳出循环语句 break;
继续跳出循环语句 continue;
返回值语句 return
判断语句 if,if else,if else if else if…else
ifelse 组合

 if(0 == x)
if(0 == y) error();
else{
//program code
}

else到底与那个if配对 C语言有这样的规定:else 始终与同一括号内最近的未匹配的if语句结合

if语句后面的分号

if(NULL!= p) ;
fun();

这里的fun()函数并不是在NULL != p 的时候被调用,而是任何时候都会被调用。问题就出
在if 语句后面的分号上。在C 语言中,分号预示着一条语句的结尾,但是并不是每条C 语言

语句都需要分号作为结束标志。if 语句的后面并不需要分号,但如果你不小心写了个分号,
编译器并不会提示出错。因为编译器会把这个分号解析成一条空语句。也就是上面的代码实

际等效于:

if(NULL != p)
{

;
}
fun();

switch、case 组合

if、else 一般表示两个分支或是嵌套表示少量的分支,但如果分支很多的话……还是用
switch、case 组合。

基本格式为:

switch(variable)
{
      case value1;
        //code;
          break;
      case value2;
            //code;
            break;
      case value3;
            //code;
            break;
      case value4;
            //code;
            break;
            default:
      break;
}

1、case 语句后面不要忘记加break;
2、 最后必须使用default 分支。即使程序真的不需要default 处理,也应该保留
语句:

default :
break;

这样做并非画蛇添足,可以避免让人误以为你忘了default处理应该得要。
case后面必须是整型或字符型的常量或常量表达式。

do、while、for 关键字

C 语言中循环语句有三种:while 循环、do-while 循环、for 循环。
while 循环:先判断while 后面括号里的值,如果为真则执行其后面的代码;否则不执
行。while(1)表示死循环。死循环有没有用呢?看下面例子:
比如你开发一个系统要日夜不停的运行,但是只有操作员输入某个特定的字符‘#’才
可以停下来。

while(1)
{
       if(‘#’== GetInputChar())
       {
              break;
       }
}

break 与continue 的区别
break 关键字很重要,表示终止本层循环。现在这个例子只有一层循环,当代码执行到
break 时,循环便终止。

#include<stdio.h>
int main()
{
    flaot area,pi=3.1415926;
    int r;
    for(r=0;r<100;r++)
    {
        area=pi*r*r;
        if(area>100)    //当area>100时就跳出for循环
            break;
    }
    printf("area=%d\n",area);
}

continue 表示终止本次(本轮)循环。当代码执行到continue 时,本轮循环终止,进入下一轮循环。具有过滤功能。

#include<stdio.h>
int main()
{
    inti=0,sum=0;
    for(i=0;i<10;i++)
    {
        if(i%3==0)//当i%3==0时就continue;继续下一次循环 把0~10中3的整数倍滤除掉
        {
            printf("i=%d",i);
            continue;
        }
        sum=sum+i;
    }
    printf("sum=%d\n",sum);
}

do-while 循环:先执行do 后面的代码,然后再判断while 后面括号里的值,如果为真,
循环开始;否则,循环不开始。其用法与while 循环没有区别,但相对较少用。

for 循环:for 循环可以很容易的控制循环次数,多用于事先知道循环次数的情况下
循环语句的注意点
长循环在最内层,效率高

for (col=0; col<5; col++ )
{ 
   
       for (row=0; row<100; row++)
       { 
   
              sum = sum + a[row][col];
       }
}

长循环在最外层,效率低

for (row=0; row<100; row++)
{ 
   
       for ( col=0; col<5; col++ )
       { 
   
              sum = sum + a[row][col];
       }
}

循环要尽可能的短,要使代码清晰,一目了然

For循环举个例子 9*9乘法表

#include<stdio.h>
int main()
{ 
   
       int i,j,sum=0;
       printf("输出9*9乘法表:\n");
       for(i=1;i<10;i++)
       { 
   
              for(j=1;j<=i;j++)
              { 
   
                     sum=i*j;
                     printf("%d*%d=%d ",j,i,sum);
              }
              printf("\n");
       }
       return 0;
}

打印出:

输出9*9乘法表:

1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=92*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

return 用来终止一个函数并返回其后面跟着的值。
return (Val);//此括号可以省略。但一般不省略,尤其在返回一个表达式的值时。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106429.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」

    Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」工作中遇到一个问题,A表中字段(DateTime1)的数据类型为DateTime,新建了一张表B的SMALLDATETIME1字段的数据来自A表的DateTime1但在将A表字段DateTime1导出到B表的SMALLDATETIME1字段时出现了以下错误后经过排查发现在原来是A表DateTime1字段的值有许多是"1753-01-0100:00:00.000",从而导致转换失败…

    2022年7月27日
    9
  • 操作系统中的同步和异步

    操作系统中的同步和异步操作系统中同步、异步性概念首先我们从操作系统的发展中学习什么是异步性。在操作系统发展的初期阶段,CPU处理的是作业,而且是单道批处理。什么意思呢?就是一个作业从提交到结束,程序员都不能干预,此时整台计算机就为这一个作业服务(可想有多少资源被”浪费”),这样有一点好处就是整个程序是”封闭的”。这样的操作表明人和机器是没有交互的。那我们怎么实现人机交互呢?这个答案是中断。中断的引入,使得工作人员能…

    2025年7月5日
    0
  • java messagedigest_Java 自带的加密类MessageDigest类(加密MD5和SHA)[通俗易懂]

    java messagedigest_Java 自带的加密类MessageDigest类(加密MD5和SHA)[通俗易懂]转载转载自:http://www.tuicool.com/articles/nMNVVjJava自带的数据加密类MessageDigest(MD5或SHA加密)说明:在网站中,为了保护网站会员的用户名和密码等隐私信息,所以我们在用户注册时就直接进行MD5方式或其他方式进行加密,即使是数据库管理员也不能查看该会员的密码等信息,在数据库中查看密码效果如:8e830882f03b2cb84d1a6…

    2022年7月17日
    10
  • Java0xffffffff为什么表示为-1

    Java0xffffffff为什么表示为-1inti=0xffffffff;System.out.println(i);输出-1上面的程序有个问题为什么inti=0xffffffff;没有报溢出错误,且输出为-1?因为0xffffffff实际是二进制,程序中任何十进制,八进制,16进制的数在计算机底层都是二进制,表示成X进制只是为了让人看明白,所以0xffffffff在电脑中就是32个1,而不是2的32次…

    2022年5月16日
    38
  • modbus通讯协议解析

    modbus通讯协议解析1.什么是modbus协议,主要应用在哪些方面?(来源于:http://www.emtronix.com/product/ModBus_software.html) Modbus协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控

    2022年7月13日
    15
  • SpringBoot 项目部署到服务器上(Jar包)

    SpringBoot 项目部署到服务器上(Jar包)1.部署方式Springboot和普通web应用程序不一样,其本质上是一个Java应用程序,那么又如何部署呢?通常来说,Springboot部署会采用两种方式:全部打包成一个jar,或者打包成一个war。现在讲一下打包成jar部署。2.打包成jar第一种方法(idea)1.clean2.package第二种方法(命令行):…

    2022年6月18日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号