C语言简介 C语言的历史 1972年,贝尔实验室,1972年,丹尼斯·里奇和布莱恩·柯林汉(Brian Kernighan)在B语言的基础上重新设计了一种新语言,这种新语言取代了B语言,所以称为C语言 C语言的源代码可以在任意架构的处理器上使用。 C语言的特点 1.语言简洁灵活 C语言是现有程序设计语言中规模最小的语言之一,C语言的关键字仅仅只有32个,控制语句也只有9个。 C语言是完全模块化和结构化的语言。C语言对于输入和输出的处理也是通过函数调用来实现的。 C语言的版本 在C语言的发展史上,有过许多不同的版本。 这本书被C语言开发者们称为“K&R”,很多年来被当作C语言的非正式的标准说明。人们称这个版本的C语言为“K&R C”。
C语言程序需要载入内存才可以运行,其不同的数据保存在不同的区域。所使用的内存可以分成两类:一类是静态存储区,另一类是动态存储区。 C语言程序的存储区如下图所示: ? x \n", b, (unsigned int)&b); printf("c = %d, &c = %#x \n", c, (unsigned int)&c); } 程序运行结果: ? int)&c); } void stack_test2(int a, int b, int c) { stack_test1(a, b, c); } 程序运行结果: ? 按照C语言内存分配规则,如果内存分配成功,返回的是内存的地址;如果内存分配不成功,将返回NULL(0x0),表示一个无效的地址。 (3)malloc在分配内存的时候,是从低地址至高地址方向。 以上是对于C语言内存的一些笔记。如有错误,欢迎指出!
个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。
下面以windows环境下的test.c为例,test.c里的代码为: #include <stdio.h> int main(void) { printf("This is a test program 2、预处理(Preprpcessing) 使用预处理器把源文件test.c经过预处理生成test.i文件,预处理用于将所有的#include头文件以及宏定义替换成其真正的内容。 预处理的命令为: gcc -E test.c -o test.i 上述命令中-E是让编译器在预处理之后就退出,不进行后续编译过程;-o是指定输出文件名。 预处理之后得到的仍然是文本文件。 汇编过程的命令为: gcc -c test.s -o test.o 上述命令中-c、-o让汇编器把汇编文件test.s转换成目标文件test.o。
其可以与typedef来进行类比进行理解(可查看【C语言笔记】define与typedef的区别?)。除此之外,其还可以与枚举enum进行类比。 二、什么是枚举 从字面理解,就是一一列举的意思。 若其他成员赋了初值,也是遵循“枚举成员的值是根据前一个成员的值递增1”这一规则,如: enum DAY { A,B,C=100,D,F=200,G }; 此处 A=0 B=1 C=100 D=101 以上就是关于枚举类型enum的一些笔记,如有错误欢迎指出。 最后,分享两篇关于枚举的文章,都讲得很详细。 https://www.cnblogs.com/JCSU/articles/1299051.html http://c.biancheng.net/cpp/html/99.html
注:在最新的C标准中,main函数前的类型为int而不是void。 2、主函数 一个C程序有且只有一个主函数,即main函数。主函数就是C语言中的唯一入口。 C语言的标识符是不可以随便起名字的,必须遵守一定的规则。 C 语言规定,标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串,并且第一个字符必须是字母或下划线。 4.标识符不能是C语言的关键字。 6、基本数据类型 在我们玩游戏的时候,游戏中的角色是有类型的,有敏捷型、力量型、法术型等等。 同样C语言中的数据也是有类型的,C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。如图所示: ? 另外 c语言int的取值范围在于他占用的字节数 ,不同的编译器,规定是不一样。ANSI标准定义int是占2个字节,TC是按ANSI标准的,它的int是占2个字节的。
C99标准下可以指定结构体的成员初始化。 typedef struct{ int a; int b; } Test; Test test = {.a = 10, .b = 15}; C99标准下可以指定数组下标初始化。
正是基于这种考虑,C语言又提供了一种数据结构,叫做位域或位段。 位域是操控位的一种方法(操控位的另一种方法是使用按位运算符,按位运算符将在之后的笔记中做介绍)。 而结构体变量pk2的各成员超出了限定的位数,并发生了上溢(溢出中的一种),关于溢出的概念可查看往期笔记:【C语言笔记】整数溢出 C语言标准规定,只有有限的几种数据类型可以用于位域。 关于C语言的几套标准可查看往期笔记:【C语言笔记】什么是ANSI C标准? 位域的存储 位域的存储同样遵循结构体内存对齐的规则,关于结构体内存对齐的问题可查看往期笔记:【C语言笔记】C语言结构体内存对齐问题 看一个例子: #include <stdio.h> struct pack 以上就是关于位域的一些笔记,如有错误,欢迎指出!
C语言的运算 1、运算符 我们上小学的时候都学过各种运算,如:加法运算、乘法运算、混合运算等,而运算就要用到运算符,如:+、-、×、÷等等。 在C语言中同样有运算符,只是写法可能有所不同。 先说一下C语言中的运算是什么?C语言中的运算就是对数据进行操作、处理的过程。那么运算符又干什么的呢?运算符就是指定该运算的处理方式。 那么C语言中又有哪些运算符呢? 那么C语言中的赋值运算符又是什么呢? 在C语言中程序中也存在这样的比较,这个时候就需要用到关系运算符了。 下面是C语言中的关系运算符: ? 关系表达式的值是“真”和“假”,在C程序用整数1和0表示。如: ? 其结果为: ? 那么上面所说的能不能在C语言中表示出来呢?当然是可以了,不过C语言中,需要用到一个符号,这个符号就是三目运算符。 C语言中的三目运算符:“?:”,其格式为: 表达式1 ?
一、同时定义多个变量 我们都知道C语言中变量的类型决定了变量存储占用的空间。 结构体是C语言中的一种构造类型。C语言的数据类型如下图: ? :【C语言笔记】#define与typedef的区别? C99和C11为结构提供了指定初始化器(designated initializer)。其初始化器使用点运算符和成员名。 关于结构体的内存对齐可查看往期笔记:【C语言笔记】C语言结构体内存对齐问题 以上就是关于结构体的一些笔记,如有错误欢迎指出。谢谢!
来源:公众号(c语言与cpp编程) c语言入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。 C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。 标识符不能是C语言的关键字。想了解更多C语言关键字的知识。 变量及赋值 变量就是可以变化的量,而每个变量都会有一个名字(标识符)。变量占据内存中一定的存储单元。 运算符号 C语言中运算符: ※ 算术运算符 ※ 赋值运算符 ※ 关系运算符 ※ 逻辑运算符 ※ 三目运算符 算术运算符 c语言基本运算符: ? C语言的数组长度一经声明,长度就是固定,无法改变,并且C语言并不提供计算数组长度的方法。
1 // 3 * 2 = 6 // 3 / 2 = 1 #include <stdio.h> int main() { int a; int b; int A,B,C, ",&a,&b); A=a+b; printf("%d+%d=%d\n",a,b,A); B=a-b; printf("%d-%d=%d\n",a,b,B); C= a*b; printf("%d*%d=%d\n",a,b,C); D=a/b; printf("%d/%d=%d\n",a,b,D); return 0; } 测试题 如上
函数 一个C语言源程序,是由一个或多个函数定义顺序组成的,其中必须有一个函数名为main的主函数。(一个project可以有多个.c文件,但只能有一个main函数。 常见错误就是把多个题目程序代码.c放到一个工程下面,每个里面都有main函数,编译不报错,组建会报错。) C语言源程序中的函数是指完成特定数据处理任务、功能上独立的一个程序段。 C语言的九种控制语句。可分为以下三类 1)条件判断语句:if语句、switch语句。 2)循环执行语句:do...while语句、while语句、for语句。 { k=i+j; a=b+c; printf{"%d%d\n",k,a}; } 5. 空语句 空语句是由分号“;”组成,并且是什么也不执行的语句,在程序中空语句可用来作空循环体。
C99 C语言常用格式化字符 格式化输出语句,也可以说是占位输出,是将各种类型的数据按照格式化后的类型及指定的位置从计算机上显示。这样做的好处,是有利于计算机能够准确的将我们所要类型数据给我们。 格式符 说明 举例 %d 带符号的十进制整数 int a=10;printf("%d",a);输出结果为10 %c 单个字符 char x='a';printf("%c",a);输出结果为a %s 字符串 C语音的常量可以分为直接常量和符号常量。 字符常量:'a','R'; 字符串常量: "I Love You"; printf("%d\n",100); //整型常量 printf("%f\n",3.14); //实型常量 printf("%c\ n",'A'); //字符常量 printf("I Love you"); //字符串常量 在C语言中,可以用一个标识符来标识一个常亮,称之为符号常量。
c语言入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。 C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。 标识符不能是C语言的关键字。想了解更多C语言关键字的知识。 变量及赋值 变量就是可以变化的量,而每个变量都会有一个名字(标识符)。变量占据内存中一定的存储单元。 运算符号 C语言中运算符: ※ 算术运算符 ※ 赋值运算符 ※ 关系运算符 ※ 逻辑运算符 ※ 三目运算符 算术运算符 c语言基本运算符: ? C语言的数组长度一经声明,长度就是固定,无法改变,并且C语言并不提供计算数组长度的方法。
指针字符串的正确表达: char a[] = "hello"; //ok char *b="hello"; //ok char c[10];c[10]="hello"; //error char c[10];c="hello"; //error char *d;d="hello"; //ok char e[]={"hello"}; //ok char
数组元素的(指针)实际上就是数组元素的地址,引用数组元素的值可以有下标法,或指针法。
间接访问:某个变量i的地址存放到另一个变量j中,通过访问变量j找到变量i的地址,从而访问变量i的值。
1个C语言程序是由1个或多个程序模块组成,每个程序模块作为一个源文件(.c),一个源文件是由1个或多个函数组成的。函数都是平行的,相互独立的,一个函数并不属于另一个函数。 实际参数 实参 printf("sum=%d",sum);//调用函数 return 0; } int add(int a,int b){//形式参数 形参 定义函数 int c; c=a+b; return c; } 函数调用时的数据传递 对应有参函数,在定义函数时函数名后面的参数称为形式参数(形参),在调用函数时,函数名后面的参数称为实际参数(实参)。
1978年,丹尼斯•里奇(Dennis Ritchie)和布莱恩•柯林汉(Brian Kernighan)合作出版了《C程序设计语言》的第一版。书中介绍的C语言标准也被称作K&R C。 什么是ANSI C、ISO C、C89、C90标准? 随着C语言使用得越来越广泛,出现了许多新问题,人们日益强烈地要求对C语言进行标准化。 经过漫长而艰苦的过程,该标准于1989年完成,这个版本的语言经常被称作ANSI C,或有时称为C89(为了区别C99)。 什么是C11标准? C11标准是C语言标准的第三版(2011年由ISO/IEC发布),前一个标准版本是C99标准。与C99相比,C11有哪些变化呢? GCC编译器在编译的时候可指定C语言标准: 指定c90标准: -std=c90 指定C99标准: -std=c99 定C11标准(目前正在开发中): -std=c11 以上就是关于C语言标准的笔记,如有错误欢迎指出
腾讯云自然语言处理(NLP)深度整合了腾讯内部顶级的 NLP 技术,依托千亿级中文语料累积,提供16项智能文本处理能力,包括智能分词、实体识别、文本纠错、情感分析、文本分类、词向量、关键词提取、自动摘要、智能闲聊、百科知识图谱查询等,满足各行各业的文本智能需求。
扫码关注腾讯云开发者
领取腾讯云代金券