精华内容
下载资源
问答
  • C语言概念

    2019-04-30 15:36:19
    文章目录1 概念1.1 c语言历史1.2C语言程序设计简介1.2.1main函数1.2.2编程风格1.2.3预处理指令1.2.4输入与输出 1 概念 语言是符号与规则组成的 程序有一组指令组成用于在计算机上执行某个任务 程序设计语言可分为...

    1 概念

    语言是符号与规则组成的
    程序有一组指令组成用于在计算机上执行某个任务
    程序设计语言可分为语法和语义
    语法表示形式,表示各个符号之间的组合规律
    语义 表示程序的含义
    高级程序设计语言:不依赖某种特定计算机的语言

    1.1 c语言历史

    在这里插入图片描述

    1.2C语言程序设计简介

    编写函数,从这个程序 可以知道c语言的四个特性,main函数,编程风格,预处理指令和输入与输出
    在这里插入图片描述

    1.2.1main函数

    在这里插入图片描述
    这五行组成了main函数,在c语言中每个程序都从main函数开始执行,每个c程序都需要一个main函数。 在ANSI C99 中main必须声明返回一个整数值 ,因此声明int main,而C89中为main 。
    16-17行中以分号结束,在c语言中,分号分别用来结束声明和语句。 用于编译器将内容正确的分离成组件

    1.2.2编程风格

    良好编程风格可提高程序的可读性和可维护性。
    自由风格:C语言是自由风格语言程序与行之间空格不会改变语义,在遵守语法时可以任意构造函数
    缩进格式:在main函数中用缩进格式可以让函数语句被随意识别出来
    在这里插入图片描述
    空行:将不同组成任务隔开
    对齐:大括号对齐
    注释:以正斜杠*开始

    1.2.3预处理指令


    1.2.4输入与输出

    printf输出 ,双引号输出内容为格式用字符串
    在这里插入图片描述

    2GCC

    2.1文件

    文件:存储在外部介质(如磁盘)上的数据集合
    文件的属性:文件名 ,存储位置,文件大小,文件内容
    在这里插入图片描述

    2.2c语言源文件

    在这里插入图片描述

    2.3 编译的四个阶段

    使用GCC编译器编译源程序需要经过四个阶段
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    例如声明变量没使用
    在这里插入图片描述
    在这里插入图片描述

    3 操作案例

    3.1 方法一

    1.建立一个文本文件在E:\框架断路器 可靠性\code try\computersysytem,并如下图
    在这里插入图片描述
    2打开cmd.exe并使用命令E:和dr如下图
    在这里插入图片描述
    在这里插入图片描述
    3预处理阶段
    在这里插入图片描述
    文件夹内生成i文件
    在这里插入图片描述
    4 生成汇编文件
    如果代码写错在这里会报错在这里插入图片描述
    正确操作如下生成HelloWorld.s
    在这里插入图片描述
    在这里插入图片描述
    5 生成目标文件
    在这里插入图片描述
    在这里插入图片描述
    6最后链接生成exe文件并打开exe
    在这里插入图片描述

    3.2 方法二

    在这里插入图片描述
    直接生成exe并执行
    在这里插入图片描述

    展开全文
  • C语言概念题大全

    2011-09-19 09:16:48
    C语言概念题大全 学习C的好资料,在短时间内了解C重点
  • c语言概念

    千次阅读 2018-12-22 13:55:49
    *C语言程序是从源文件的第一条语句开始执行的。(x) 从main函数开始执行 *C 语言中的变量名区分大小写。 *运算符优先级以及结合方式 1.初等运算符:()[ ] .(取结构体变量成员) ->(指针引用结构体变量成员)...

    *任何表达式语句都是表达式加分号组成的。

    *C语言程序是从源文件的第一条语句开始执行的。(x) 从main函数开始执行

    *C 语言中的变量名区分大小写。

    *运算符优先级以及结合方式

       1.初等运算符:()[ ]  .(取结构体变量成员) ->(指针引用结构体变量成员)

       2.单目运算符  + - ++ -- ~ *(取指针内容)&(取地址)sizeof(长度运算符)!

       3.算术运算  * / %

       4.算术运算  + -

       5.移位运算 << >>

       6.关系运算 < > <= >=

       7.==  !=

       8.位逻辑运算 &

       9.                    ^   如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

       10.                  |

       11.                      &&

       12.                     || 

       13.条件运算 ?:

       14.赋值运算 = += *= /= 

       15.逗号运算符 ,

    *关于逗号运算符:求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14

    * 'a'的ASCII码是97 ,’A‘的是65,'0'是48

    *  if(a),表示a为真时执行后续语句(即a为非零的时候)

        if(!a),表示a为假时执行后续语句(即a为零的时候)

    * 表达式 (j=3, j++) 的值是 3

    * 整数的表示:八进制(开头是0) 十六进制(0-9,a-f,A-F,首位数字前有ox) 十进制

    *  If x is a float variable, the value of expression x=10/4 is 2.0

    *  位运算(未看懂)

    &

    按位与
    如果两个相应的二进制位都为1,则该位的结果值为1,否则为0


    |

    按位或
    两个相应的二进制位中只要有一个为1,该位的结果值为1


    ^

    按位异或
    若参加运算的两个二进制位值相同则为0,否则为1


    ~

    取反
    ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1


    <<

    左移
    用来将一个数的各二进制位全部左移N位,右补0


    >>

    右移
    将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,                 高位补0
    *  int a=10, b=20; the value of expression!a<b is  1。

    *  

    According to the declaration:int a; the value of expression (a&3)==(a%4) is  1.(疑问)

     

    表达式(a&3)==(a%4)的值是1
    因为无论a的值为多少a&3的结果只保留a的最后2位
    如a的值为17,它变为二进制为10001,而3为00011,它们相与的结果只有a的1和2位数字保留下来也就是01,因为与1相与就保留原数据,与0相与就变0 如 a&1=a a&0=0
    而a%4也是保留a的最后2位,因为只有最后2位的值为3,小于4,其它都>4
    所以上面表达式是成立的,所以为1

    *若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b
      B正确

    正确答案是 B;
    首先 是显而易见的错误选项C跟D:
    C 求余运算(%)只对整数有效,浮点型数据(12.3)是没有 求余运算的。
    D 赋值运算(=)的左边只能是 变量(a),不能为 表达式(a+7)。

    下面看看选项B 为什么也符合C语言:
    B 项为逗号运算符(表达式1,表达式2,...表达式n),其中最后一个表达式(表达式n)最为整个逗号运算的结果(即 B项的最后结果为 a++);而在此之前,逗号运算符会先对前面的所有表达进行编译操作(即先执行a=7+b+c),最后才将表达式n 作为结果返回。

    下面再看看 为什么 A 不符合要求:
    A 毋庸置疑,A 的写法完全符合C语言要求,编译绝不会出错。但是 题目要求 却是 “表达式”;
    C语言中,语句是由 表达式 加 语句结束符(分号;)组成的。A选项中结尾含有分号,也就是说,A选项 实际上是 C语言语句,而不是表达式;B 选项没有语句结束符,所以 B选项是 表达式,符合题目要求。

    *  Among the following expressions in C,  (4) is correct. (2分)(疑问)

    1. 0.5%2
    2. 3&(0.5+0.5)
    3. 4.6<<2
    4. 2==(3/2)

    关于字符常量

    字符常量有两种:
    一种是普通字符,即用单撇号括起来的一个字符,如'b' ,'y',‘?’。字符常量在储存在计算机的储存单元中时,是以其代码(一般采用ASCII代码)储存的。另一种是转义字符,即特殊字符常量。转移字符是C语言中表示字符的一种特殊形式,其含义是将反斜杠后面的字符转换成另外的意义。
    使用字符常量需要注意以下几点:
    (1)字符常量只能用单撇号括起来,不能使用单引号或其他括号。
    (2)字符常量中只能包括一个字符,不能是字符串。
    (3)字符常量是区分大小写的。
    (4)单撇号只是界限符,不属于字符常量中旳一部分,字符常量只能是一个字符,不包括单撇号。
    (5)单撇号里面可以是数字、字母等C语言字符集中除’和\以外所有可现实的单个字符,但是数字被定义为字符之后则不能参与数值运算。

    合法的:'b' ,'y',‘?’,'\n','\b','\a','\t',’\x43‘ ,

    不合法:”\0”(字符串不需要写结束符。)

    According to the declaration: char ch; the assignment expression ______is correct.
    A.ch=’\412’ B.ch=255 C.ch=’\08’ D.ch=’\’

    选B(需确认
    A中'\412'表示八进制的412,转化为十进制是266,超出了ascII的范围(0~255)
    C,八进制不可能有8
    D '\' 表示错误,应该是'\\'表示斜杠‘\’

    *  2,900不是正确的整形常量

    *  若变量已正确定义并赋值,表达式( 2)不符合C语言语法。 (2分)

    1. 5&&3
    2. int(5.5)         (int)5.5为强制类型转换
    3. +a

      4.a=b=c=5

    *  -k++ 等价于-(k++).

    *  合法标识符由字母、下划线、数字这三个方面组成,但开头必须是字母或下划线。另外,关键字不能是标识符,如main等。

    *  已知int i, a; 执行语句i=(a=2*3,a*5),a+6;后,变量i的值是  30

    *  Which one is completely correct among the following program fragments? (c)    (疑问)

    *  设xyt均为int型变量,则执行语句:x=y=3; t= ++x || ++y; 后,y的值为  3.

    *   逻辑运算符两侧运算对象的数据类型(可以是任何类型的数据)

     

     

    1. int *p; scanf("%d", &p);
    2. int *p; scanf("%d", p);
    3. int k, *p=&k; scanf("%d", p);
    4. int k, *p; *p= &k; scanf("%d", p);
    int m=20; while (m=0) m=m++;
    

    则下面描述中正确的是(3 )。 (2分)

    1. while 循环执行 10 次
    2. 循环是无限循环
    3. 循环体语句一次也不执行
    4. 循环体语句执行一次

    *  C语言中函数返回值的类型是由(定义函数时所指定的函数类型 )决定的

    *   函数的定义不能嵌套,但函数调用可以嵌套

    *  关于return语句

    1. 被调用函数中可以不用 return 语句
    2. 被调用函数中可以使用多个 return 语句
    3. 被调用函数中,如果有返回值,就一定要有 return 语句

    *  

    According to the declaration: int p[5], *a[5];the expression ( 3 )is correct. (2分)

    1. p=a
    2. p[0] = a
    3. *(a+1)=p
    4. a[0]=2

    *  

    对于以下结构定义,++p->str中的++加在___1_。 (2分)

    struct { 
        int len; 
        char *str;
    } *p;
    
    1. 指针str上
    2. 指针p上
    3. str指的内容上
    4. 以上均不是

    *  

    According to the declaration: int (*p)[10];, p is a pointer;

    *  

    In the following declarations, the correct assignment expression is _3_. (2分)

    int *p[3], a[3];
    
    1. p = a
    2. p = &a[0]
    3. *p = a
    4. p[0] = *a

    *  

    有说明语句int a[4][5];,则a[2]+3表示__。 (2分)

    1. a数组行下标为2、列下标为3的元素的地址

    *  

    According to the declaration: int a[10], *p=a; the expression (4)is wrong. (2分)

    1. a[9]
    2. p[5]    (重点)
    3. *p++
    4. a++

    *  设变量定义为 int a[2]={1,3}, *p=&a[0]+1;,则*p的值是 3。

    *  printf("%f%%",1.0/3);输出为 0.333333%

       最后二个连续的%%就是实际输出一个%符号  

    *  若有定义和语句: int a; char c; float f; scanf("%d,%c,%f",&a,&c,&f);

       若通过键盘输入: 10,A,12.5 则a=10,c='A',f=12.5。(注意字符)

    *  预处理命令的前面必须加一个“#”号。

    *  在对数组全部元素赋值,行可省,列不可省。

    * 文件指针和位置指针都是随着文件的读写操作在不断改变。 (x)

         位置指针指向文件内部的字节位置,随着文件的读取会移动

         文件指针如果不重新赋值将不会改变指向别的文件。

    *  任何表达式语句都是表达式加分号组成的

    *  在switch语句中,每一个的case常量表达式的值不可以相同。

    *  C语言函数返回类型的默认定义类型是int

    *  可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数.

    *  函数形参的存储单元是动态分配的

    *  结构体变量可以作数组元素

    *  二进制文件可以随机存取,文本文件顺序存取

    *  函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同  时,则返回0。

    *  C语言的书写格式会影响程序的可读性

    *  if(a=5) 是允许的

    *  函数返回值的类型是由在定义函数时所指定的函数类型决定的

    *  逻辑表达式的值只能为1或0

    *  变量被定义后 , 它不仅有一个确定的地址值 , 而且还会有一个确定的本身值(x)

    *  结构体数组中可以包含不同结构体类型的结构体变量  (x)

    *  以“r”方式打开一个文件时,文件指针指向文件首

    *  使用static k定义的变量属于静态变量

    *  文件指针用于指向文件,文件只有被打开后才有对应的文件指针

    *  在switch语句中,多个case可以共用一组执行语句。

    * 表达式语句和表达式没有什么区别

     在程序设计语言中,语句指的是执行单元,通常以行为单位,表达式指的是可用于计算的式子

    ,即可能产生一个值的式子。语句可以包含有表达式,表达式也可以单独形成一个语句。

    *  fseek函数一般用于文本文件  (x)

    *  枚举类型中的元素都具有一个整型值

    *  在多层循环中, 一个break语句只向外跳一层。

    *  局部变量如果没有指定初值,则其初值不确定。

    *  文件的读函数是从输入文件中读取信息,并存放在内存中。

    *  结构体类型本身不占用内存空间,结构体变量占用内存空间

    *  char *s="C Language";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s

    *  在C语言中,逗号既可以作为运算符,也可以作为分隔符。

    *  不允许把一个数值或字符赋予指针变量

    *  两指针变量相减所得之差是两个指针所指数组元素之间相差的元素个数。

    *  两指针变量相减所得之差是两个指针所指数组元素之间相差的元素个数。

    *  语句 printf("%02d",1/3);输出为 00

    *  条件运算符?和:是一对运算符,不能分开单独使用

    *  如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素

    *  C 语言程序实现与其他高级语言一样也要经过编辑、编译连接和运行这样的三步曲

    *  在同一个作用域中不可定义同名变量 , 在不同的作用域中可以定义同名变量

    *  直接访问就是直接利用变量的地址直接进行访问

    *  指向结构体变量的指针可以作函数参数,实现传址调用

    *  凡在函数中未指定存储类别的全局变量其默认储存类型都是extern , 而局部变量的默认储存类型是 auto

    C语言中的全局变量如果没有指定初值,则其初值自动设置为0。 

    *  指针变量可以存放指针(地址)、数值和字符 (x)

    *  函数的实参传递到形参有两种方式值传递和地址传递

    *  字符串在内存中的起始地址称为字符串的指针,可以定义一个字符指针变量指向一个字符串。

    *  一个C源程序可以有多个main函数 (x)

    *  表达式 (j=3, j++) 的值是3

    *  标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项

    *  C 语言标准格式输入函数 scanf() 的参数表中要使用变量的地址值

    C 语言标准格式输出函数 printf() 的参数表是由若干个表达式组成

    *  int *p[4]; //定义一个指针数组,该数组中每个元素是一个指针,每个指针指向哪里就需要程序中后续再定义了。
    int (*p)[4]; //定义一个数组指针,该指针指向含4个元素的一维数组(数组中每个元素是int型)。

    区分int *p[n]; 和int (*p)[n]; 就要看运算符的优先级了。
    int *p[n]; 中,运算符[ ]优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组。
    int (*p)[n]; 中( )优先级高,首先说明p是一个指针,指向一个整型的一维数组。

    *  变量被定义后 , 它的作用域和寿命就被确定了 , 并且不可改变

    *  在 C 语言程序中 , 凡是没有出现存储类说明符的变量都是自动类的。

    * 数组元素通常也称为下标变量。必须先定义数组, 才能使用下标变量

    *  while(条件表达式)
    while后面的条件表达式,不能省略

    for(;条件表达式;)
    for语句中的条件表达式可以省略

    *  指针变量和它指向的变量之间的关系,可以用指针运算符“*”表示

    *  内部静态变量的作用域和寿命与自动变量的相同(x)

    静态局部变量的生存周期虽然延续到整个程序执行完毕,但其作用域仍与自动变量相同,即只能在定义该变量的函数或语句块内使用。退出该函数或语句后,尽管该变量还存在,但其他的程序代码不能使用它,这是静态局部变与全局即外部不同之处。

    *  内部静态变量的寿命与自动变量的不同

    *  声明数组时,数组名后是用大括号括起来的常量表达式(x)

    *  C语言源程序的扩展名是c

    *  可以在一个函数中定义另一个函数(x)

    * 文件是否打开是可以判断的

    *  a=(b=4)+(c=6) 是一个合法的赋值表达式。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 大一c语言概念整理

    2014-03-02 11:28:38
    本文档由本人复习C语言时进行整理,偏重概念细节
  • c语言概念总结顺口溜

    2014-05-25 14:33:19
    以顺口溜的形式把c语言中的各种概念做了总结归纳,读来朗朗上口,生动有趣,别具一格
  • 1、资源名称: C语言概念题大全及详细解答(经典) 2、资源分类: 开发技术 3、资源ID: 3555810 4、推荐理由: 100多选择和100填空覆盖了C的所以常见问题,每一题都有最详细的解答。 5、资源地址:download.csdn...
  • C语言概念题解答选编

    2009-11-09 09:58:49
    集中了C语言学习过程中的各类问题,使初学者更牢靠的掌握
  • 100多选择和100填空,每一题都有最详细的解答。 绝对让你看完后受益匪浅。
  • 100多选择和100填空,每一题都有最详细的解答。绝对让你看完后受益匪浅。
  • C语言C语言基本概念

    C语言基本概念

    🌐目录

    📚教学

    第一个C程序

    main.c

    #include<stdio.h>
    
    int main(void){
        
        printf("Hello,World\n");//a simple C program
        
        return 0;
    }
    

    将上述程序写在你的编译器里。

    然后给文件命名,并以.c作为扩展名,例如main.c

    现在,编译并运行该程序。如果一切正常,输出的应该是:

    Hello,World
    

    恭喜你,你已经是一名C程序员了!😆

    Hello,World 是伟大的。它像着一个呱呱坠地的婴儿对世界的问好,它憧憬着美好的世界,一切事物都是新鲜的。

    ​ ——不会编程的程序圆

    现在,让我们看看这个程序到底是什么意思。

    正式开始之前

    编译和链接

    C程序编译链接的过程:(知道即可)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0eJwfFY8-1619685161998)(C:\Users\1\Desktop\素材\23.png)]

    集成开发环境

    集成开发环境(integrated development enviroment,IDE):集成开发环境是一个软件包,我们可以在其中编辑,编译,链接,执行和调试程序。

    IDE推荐:

    CodeBlock(本教学中的简单的程序会用这个软件来完成)

    VS2019(编写需要调试的程序用它来完成)

    简单程序的一般形式

    1. 指令

    示例程序第一行#include<stdio.h>就是一条指令。

    在程序编译之前,C编译器的预处理器(preprocessor)会首先对源代码进行一些准备工作,即预处理(preprocessing)。

    **指令(directive):**我们把 预处理器 执行的命令称为 预处理器指令(preprocessor directive),简称指令。

    指令的结尾不需要添加分号

    #include<stdio.h>的作用相当于把 头文件 stdio.h 中的所有内容都输入到该行所在的位置。

    实际上,这是一种复制+粘贴的操作。

    include 文件提供了一种方便的途径共享许多程序共有的信息

    stdio.h文件中包含了供编译器使用的输入和输出函数(如 printf())信息。

    该文件名的含义为标准输入/输出头文件(stadard input&output .header)

    **头文件(header)😗*在C程序顶部的信息集合。

    每个头文件都包含一些标准库的内容。

    示例程序引入stdio.h头文件的原因:C语言不同于其他编程语言,它没有内置的“读/写”命令。输入/输出功能由标准库中的函数实现。[^1]

    **每次用到库函数,必须用#include指令包含相关的头文件。**省略必要的头文件可能不会对某一个特定程序造成影响,但是最好不要这样做。

    2.函数

    int main(void)

    **函数:**类似于其他编程语言的“过程”或“子例程”,它们是用来构建程序的构建块。

    事实上,C语言就是函数的集合。

    函数分两大类:第一种是程序员自己编写的函数;另一类则是C作为语言实现的一部分提供的函数,即库函数(library function)。因为它们属于一个由编译器提供的函数“库”。

    main函数:C程序都是从main()函数“开始”执行。main()函数是程序的唯一入口。可以理解为程序是从main函数开始运行到main函数结尾结束。

    返回类型int是main函数的 返回类型。这表明 main函数返回的值是整型。

    返回给哪里?返回给操作系统,我们后面再来讲解

    参数()内包含的信息为函数的参数。示例中的void表示该例中没有传入任何参数。

    请注意

    有背景颜色的地方都是重要的知识,但是在这里不管你是初学者/学了一段时间了,我都建议你遵守以下规范:

    **main函数到底应该怎么写?**我在这里不详细展开说。

    正确的形式int main(int argc, char* argv[])

    可以接受的形式:int main(void)

    错误的写法int main() 谭老师书中的写法。跟我学,不要用这种写法

    脑瘫的写法void main() void main(void)所有C语言的标准都未认可这种写法,你在赣神魔?

    return 0

    返回值:前面我们讲到了返回类型,那么就应该有个返回值。示例中 return就代表返回,0是这个main函数的返回值。

    main函数中return的作用

    1.使main函数终止。mian函数在这里结束。

    2.main函数返回值是0,表示程序正常终止

    所以,return 0在main函数中是不可省略的

    虽然即使你不写,可能也可以通过编译,但是不写是不对的。

    3.语句

    语句是程序运行时执行的命令

    语句是带顺序执行的 C 程序段。任何函数体都是一条复合语句,继而为语句或声明的序列

    例如:

    int main(void)
    { // 复合语句的开始
        int n = 1; // 声明(非语句)
        n = n+1; // 表达式语句
        printf("n = %d\n", n); // 表达式语句
        return 0; // 返回语句
    } // 复合语句之结尾,函数体之结尾
    

    C语言中的六种语句

    1. 标号语句

      1. goto 语句的目标。 (标识符 : 语句

      2. switch 语句的 case 标号。(case 常量表达式 : 语句

      3. switch 语句的默认标号。 (default : 语句

    2. 复合语句

      复合语句,或称,是花括号所包围的语句与声明的序列。

      {声明(可选)| 语句 }

    3. 表达式语句

      典型的 C 程序中大多数语句是表达式语句,例如赋值或函数调用。

      无表达式的表达式语句被称作空语句。它通常用于提供空循环体给 forwhile 循环。

    4. 选择语句

      选择语句根据表达式的值,选择数条语句之一执行。

      1. if 语句

      2. if 语句带 else 子句

      3. switch 语句

    5. 迭代语句

      迭代语句重复执行一条语句。

      1. while 循环

      2. do-while 循环

      3. for 循环

    6. 跳转语句

      跳转语句无条件地转移控制流。

      1. break 语句

      2. continue 语句

      3. return 语句带可选的表达式

      4. goto 语句

    为什么需要分号?

    由于语句可以连续占用多行,有时很难确定它结束的位置,因此需要用分号来向编译器表示语句结束的位置。但预处理指令通常只用占一行,因此不需要分号结尾

    4.打印字符串 printf() 函数

    printf("Hello,World\n");

    printf()是一个功能十分强大的函数。后面我们会进一步介绍

    示例中我们只是用printf函数打印了出了一条字符串字面量(string literal) —— 用一对双引号引起来的一系列字符。

    字符串,顾名思义就是一串字符。

    printf函数不会自动换行到下一行打印,它只会在它最开始那一行一直打印直到程序迫使它换行。

    \n表示printf函数打印完成后跳转到下一行

    请看如下程序,思考它的效果与示例中有何不同?

    printf("Hello,");
    printf("World\n");
    

    答案[^2](点击或到文章尾查看)

    如果想输出下面的结果,请考虑一下,应该如何写程序呢?

    Hello,
    World
    

    答案:

    printf("Hello,\n");
    printf("World\n");
    

    对于这个问题,第二个printf函数的 \n 可以省略。简单来说,printf函数会在 \n 出现的地方换行。

    5.注释

    //a simple C program

    写注释可以让自己和别人更容易明白你写的程序。

    C语言注释的好处是:可以写在任何地方。注释的部分会被编译器忽略。

    我们试想一件事你昨天吃了什么饭,记性好是吧?上周五吃的什么饭?如果连上周 一天三顿的饭都不能记住,何况你自己查看你很久之前写的代码呢?

    两种注释符号

    第一种:/* */

    单行注释

    /* 关注微信公众号:不会编程的程序圆 */
    /* 看更多干货,获取第一时间更新 */
    /* 码字不易,对你有帮助 点赞/转发/关注,鼓励一下作者 */
    

    多行注释

    /* 关注微信公众号:不会编程的程序圆
    看更多干货,获取第一时间更新
    码字不易,对你有帮助 点赞/转发/关注,鼓励一下作者 */
    

    但是,上面这一种注释方式可能难以阅读,因为人不不容易发现注释结束的位置。

    改进:

    /*
    看更多干货,获取第一时间更新
    码字不易,对你有帮助 点赞/转发/关注,鼓励一下作者
    */
    

    更好的方法:将注释部分围起来

    /*************************************************
     *                     *
     *   看更多干货,获取第一时间更新                     *
     *   码字不易,对你有帮助 点赞/转发/关注,鼓励一下作者   *
    *************************************************/
    

    当然如果你嫌麻烦,也可以简化一下:

    /*
     * 关注微信公众号:不会编程的程序圆
     * 看更多干货,获取第一时间更新
     * 码字不易,对你有帮助 点赞/转发/关注,鼓励一下作者
     */
    

    简短的注释可以放在同一行

    printf("Hello World\n");/* 不会编程的程序圆 */
    

    但是,如果你忘记了终止注释可能会导致你的编译器跳过程序的一部分,请思考下列:

    printf("不会"); /* 关注我的公众号呦~
    printf("编程"); 
    printf("的");   /* 更多鼓励,更多干货!*/
    printf("程序圆");
    

    你可以在自己的编译器上自己敲一下,看看会输出什么。

    由于第一条注释忘记输入结束标志,导致编译器将直到找到结束标志之前的程序都当成了注释!

    第二种://

    C99提供的新的注释方式。

    //
    //看更多干货,获取第一时间更新
    //码字不易,对你有帮助 点赞/转发/关注,鼓励一下作者
    
    
    展开全文
  • 学好C语言指针必须理解和区分以下4个概念。一、指针的类型二、指针所指向的类型三、指针的值(指针所指向的内存区)四、指针本身所占据的内存区指针变量存放的内容就是地址,或者说指针变量的值就是地址。下面看个例子...

    C语言指针是一个特殊的变量,其里面存储的数值被解释为内存里面一个地址。学好C语言指针必须理解和区分以下4个概念。

    一、指针的类型

    二、指针所指向的类型

    三、指针的值(指针所指向的内存区)

    四、指针本身所占据的内存区

    指针变量存放的内容就是地址,或者说指针变量的值就是地址。下面看个例子

    char * pStu //定义的指针变量

    *表示pStu是一个指针变量,char是指针变量pStu指向的变量的数据类型。整个C语句表示:定义了一个指向char类型变量的指针变量,变量名称为pStu。但具体pStu指向哪个char类型的变量,这就要看在使用pStu时,给pStu赋予的值,值是什么就指向哪儿。下面是个案例#include 

    int main(void)

    {

    int a=1,b=10;

    int *p1,*p2;

    p1=&a;

    p2=&b;

    printf("P1地址是%d,p1存储的值是%d\n",p1,*p1);

    printf("p2地址是%d,p2存储的值是%d\n",p2,*p2);

    printf("p1-1地址存储值是%d\n",*(p1-1));

    printf("p1地址中的值-1后的值是%d\n",*p1-1);

    printf("*(p1-1)的值和*p1-1的值不同\n");

    return 0;

    }

    1514259079182741.png

    展开全文
  • C语言基本概念
  • C语言基本概念

    2016-09-22 11:11:43
    C语言入门教材。
  • C语言精髓概念

    2018-07-18 15:38:50
    C语言入门基础,简单介绍了算法、函数、流程控制语句、指针等等
  • c语言基本概念

    2021-01-04 21:51:37
    什么是c语言 c语言是一门通用计算机编程语言,广泛应用于底层的开发。C语言的设计目标是提供一种能以简易的方式编译,处理低级存储器,产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 尽管...
  • C语言基础概念

    2019-06-08 17:29:12
    C语言基础特征: C语言中有34种运算符 C是结构化语言:顺序结构,选择结构,循环结构 C语言允许直接访问物理地址,可以直接对硬件操作 C语言执行小路高、速度快 C语言自带的数据类型: 整型 实型(浮点型) 字符型 ...
  • c语言文件概念很不错

    2008-12-26 22:01:04
    c语言文件概念 电子书c语言文件概念 电子书c语言文件概念 电子书
  • C语言基础知识(易混淆概念总结)摘自《C语言终极宝典》
  • C语言数组概念

    2020-12-21 19:17:22
    目录:前言一、数组的概念和定义二、使用步骤1.访问数组2.程序运行总结 前言 C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同...
  • 03-C语言基本概念.md

    2021-03-06 23:57:11
    03-C语言基本概念.md
  • 02-C语言基本概念.md

    2021-03-06 23:56:56
    02-C语言基本概念.md
  • C语言重要概念C语言重要概念适合初学者C语言重要概念适合初学者
  • c语言程序设计概念

    2015-04-22 09:20:28
    C语言程序设计概念
  • C语言地址概念

    千次阅读 2017-05-27 19:35:54
    内存中的概念编辑 计算机内存中的各个存储单元都是有序的,按字节编码。字节是最小的存储单位。 故数组中每个元素的地址总比前一个大。[1-2]  地址变量的概念 编辑 变量代表内存中具有特定属性的一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,359
精华内容 8,543
关键字:

c语言概念

c语言 订阅