C语言简介 C语言的历史 1972年,贝尔实验室,1972年,丹尼斯·里奇和布莱恩·柯林汉(Brian Kernighan)在B语言的基础上重新设计了一种新语言,这种新语言取代了B语言,所以称为C语言...C语言的源代码可以在任意架构的处理器上使用。 C语言的特点 1.语言简洁灵活 C语言是现有程序设计语言中规模最小的语言之一,C语言的关键字仅仅只有32个,控制语句也只有9个。...C语言是完全模块化和结构化的语言。C语言对于输入和输出的处理也是通过函数调用来实现的。...这本书被C语言开发者们称为“K&R”,很多年来被当作C语言的非正式的标准说明。人们称这个版本的C语言为“K&R C”。...应用范围: 1.编译器,JVM,驱动 2.操作系统内核 3.各类软件开发 4.嵌入式设备开发,例:手机 5.等等等 C语言的编译 C语言是一种编译型语言,源码都是文本文件,本身无法执行。
那么在C语言中函数又是什么意思呢?我们一起来看看!...在C语言中,从用户的角度来看,可以分为: 1.库函数 2.自定义函数 从函数的形式来看,可以分为: 1.无参函数 2.有参函数 库函数 C语⾔的国际标准ANSI C规定了⼀些常⽤的函数的标准,被称为标准库...像我们平时使用的printf,scanf都是库函数,在 库函数使用 的时候,我们 必须包含它们所对应的头文件 ,比如printf,scanf的头文件是stdio.h,除了这个头文件外,C语言还有许多的头文件...这里给出两个学习网站: C/C++官⽅的链接: https://zh.cppreference.com/w/c/header cplusplus.com: https://legacy.cplusplus.com...\n"); if (1) return; printf("YES!!!!
C语⾔中给地址起 了新的名字叫: 指针。...= &a; float b = 5.2f; float* pointer2 = &b; char c = 'c'; char* pointer3 = &c; printf("%d\n", sizeof...修饰指针变量的时候,当const在不同的位置会有不同的效果,比如下面这个代码: #include int main() { int a = 10; int b = 20; int c...= 30; int d = 40; int* pa = &a; const int* pb = &b; int const* pc = &c; int* const pd = &d; *pa...NULL 是C语⾔中定义的⼀个标识符常量,值是0,0也是地址,这个地址是⽆法使⽤的,读写该地址会报错。
今天是我正式与c语言接触的第一天,心中忐忑之余我更多的是兴奋,想要用c语言这门专业的编程序语言来提高自己,在学习知识之后我会在csdn上记录自己的学习历程,通过其巩固所学知识和查漏补缺,希望对自己和大家都有所帮助...C语言是一门通用计算机编程语言,广泛用于底层开发,以简易的方式编译、处理低级存储器、产生少量机器码以及不需要任何运行环境支持便可运行的编程语言。...学习重点: ·认识到什么是c语言 ·第一个c语言程序 ·数据类型 ·变量,常量 ·字符串+转义字符+注释 ·选择语句 ·循环语句 ·函数 ·数组 ·操作符 ·常见关键字 ·define定义常量和宏 ·指针...·结构体 写代码步骤:1.创建一个项目; 2.创建一个源文件:单击鼠标右键添加一个新的c++文件,文件名改为text.c; 3.写代码; 4.编译代码 快捷键ctrl+F5 一次运行中有且仅有一个...一个工程中可以有多个.c文件,但是多个.c文件中只能有一个main函数。
内存和地址 1....计算机常见的单位:(⼀个⽐特位可以存储⼀个2进制的位1或者0) 1Byte = 8bit 1KB = 1024Byte 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB 1PB...我们把内存单元的编号称为地址,C语言中叫做指针。 2....指针变量和地址 1. 取地址操作符(&) 在C语言中,创建变量其实就是向内存申请空间。...指针+1,其实跳过1个指针指向的元素。指针可以+1,那也可 以-1。 结论: 指针的类型决定了指针向前或者向后⾛⼀步有多⼤(距离)。
计算机中的内存如同酒店中每个房间的编号,也是把内存划分为一个个的单元,每个单元的大小取1个字节. 1byte(字节) = 8bit(比特) 1kb = 1024byte 1mb = 1024kb 1gb...= 1024mb 1tb = 1024gb 1pb = 1024tb 每个内存单元相当于一个学生宿舍,每个内存单元为1字节,存放8个bit位。...就好比如同学们住的是8人间,每个同学表示1个比特位。1个bit位可以储存二进制的0或1....指针变量和地址 2.1 取地址操作符(&) C语言中创建变量就是向内存中申请空间 比如: &: 取地址操作符,是个单目操作符 &a:表示取出a的地址 比如: int 型的变量占4个字节...C语言中我们拿到了地址(指针),就可以找到地址(指针)指向的对象。 这里我们就要介绍一种操作符解引用操作符:* *p的意思是通过p中存放的地址找到指向的空间。
接着让我们思考两个问题:1.为什么程序运行之前都要被加载到内存当中?快 2.在程序被加载到内存之前,程序在哪里?在硬盘当中。 有关变量 什么是变量?...1.局部的(如果是全局,会导致cpu中长时间占存) 2.不会被写入的(写入就要写回内存,后续还要检测的话,register就体现不出它的意义) 写入是什么意思?...头文件可能会被重复包含,为了保证头文件不被重复包含,我们有两种写法: 1.在开头写上#pragma once 头文件里会包含哪些内容呢? 使用尖括号包含的是c语言的头文件,包含自定义用双引号。...但是在text.c的.o文件当中又找到了这个函数。函数的声明本质上也是在内存上开辟空间,只不过变量保存的是数据,而函数保存的是代码,这个代码保存好之后一般是不可被写入的。...1.全局变量可以跨文件访问吗?可以。 2.函数可以跨文件访问吗?可以。 为什么呢?大型项目一定是多文件的,多个文件之间一定要进行数据交互。如果不能跨文件,交互成本比较高。
内存的单位是字节,1个字节就是1个内存单元,每个内存单元对应着一个独一无二的编号,而这个编号就是地址。...在C语言中,指针其实就是内存的地址,我们使用指针变量来存放指针(一般来说,没有特别说明,大家都是默认“指针”就是“指针变量”)。我们可以通过指针(地址)找到对应的内存空间里存放的数据。...二.指针的使用 在C语言中,我们使用取地址操作符&来获取变量的地址。我们将其地址存放到指针当中。 值得注意得是,变量的类型不同,也就是字节数不同。...我们再看下面的代码及其结果 char* 类型的指针变量+1跳过1个字节, int* 类型的指针变量+1跳过了4个字节。 所以指针的类型决定了指针+-1时跳过多少个字节。...NULL是空指针,它是C语言定义的标识符常量,其值为0,地址0是无法使用的,强行使用编译器会报错。
1 arr1 arr1 arr2 arr2 // ## // 1.3一维数组的使用 对于数组的使用我们之前介绍了一个操作符:[ ],下标引用操作符。...数组的下标规定是从零开始的,如果数组有n个元素,最后一个元素的下标就是 n-1. 所以数组的下标如果小于0,或者大于n-1,就是数组越界访问了,超出了数组合法空间的访问。...C语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不会报错,并不意味着程序就是正确的 所以程序员写代码时,最好自己做越界的检查。 二维数组的行和列也可能存在越界
1.内存与地址 大家对地址都不陌生,就像在生活中住酒店如何找到房间?那不就通过房卡上的房间号先确定楼层在确定房间。而这些房间号我们也叫地址。...在C语言中给地址起了新名叫:指针 所以我们理解的:内存单元的编号 == 地址 == 指针 2.指针变量与地址 2.1 取地址操作符& 在C语言中创建变量其实就是在向内存申请空间。...char b = 'a'; char* p = &b; 2.4 解引用操作符 在C语言中,我们找到地址,就可以对地址所指向的对象,而此时所要用到的就是解引用操作符(*)。...2.5 指针变量的大小 32位机器假设有32根地址总线,每根地址线出来的电信号转换成数字信号后是1或者0,那我们把32根地址线产⽣的2进制序列当做⼀个地址,那么⼀个地址就是32个bit位,需要4个字节才能存储
什么是C语言? C语言是一门通用计算机编程语言,广泛应用于底层开发。...二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制 定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。...[1] 目前2011年12月8 日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标 准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉...1.第一个C语言程序 接下来我们来写第一个C语言程序,printf 是库函数,功能是在屏幕上打印数据信息 - 输出, 库函数是标准库中提供的函数,这些函数是现成的,直接可以使用,但是使用库函数需要包含对应的头文件...不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。
因为不同类型的指针,决定了对指针进行解引用操作的时候可以访问的字节数------指针的权限;同时也决定了指针向前向后走一步有多大-------步长; 1.野指针 局部变量不进行初始化时侯,是随机值; 野指针...---------------指针变量不进行初始化,默认随机值,但对其进行赋值;或者是越界访问; 1.类型 (1)未初始化 (2)越界访问 (3)指针指向的空间释放 2.如何避免野指针 (1)知道地址直接初始化...,不知道地址就初始化为NULL(空指针,没有有效的空间,不可直接用); (2)指针指向的空间释放,及时置为NULL; 2.指针运算 (1)指针+-整数 通过指针对数组的元素进行赋值并打印; (2)指针-
1、内存和地址 1.1内存 理解内存和地址,我们可以把它们类比为宿舍楼和房间编号。...在C语言中还给地址起了一个新的名字,叫做指针。可以粗略的认为:地址就是指针,指针就是地址。...我们可以简单地理解,32位机器有32根地址总线,每根线有两个形态,0或1(电脉冲的有无),一根线能表示两种信息,那么32根线就能表示2的32次方种信息,这个数还是非常大的。...作为C语言的灵魂,指针是C语言中功能最强大的机制,在后续的学习中就会慢慢地理解其中的含义。...还有一点,前面说了 “&” 操作符取到的只是首地址(最小的地址),所以不管地址是1个字节还是4个字节还是8个字节,只要取出首地址就可以了。
1.判断闰年 用户输入年份,判断该年份是否为闰年。...n2, i, gcd; printf("输入两个正整数,以空格分隔: "); scanf("%d %d", &n1, &n2); for(i=1; i 1 &&...=n2) { if(n1 > n2) n1 -= n2; else n2 -= n1; } printf...= (n1>n2) ?...n1 : n2; // 条件为 true while(1) { if( minMultiple%n1==0 && minMultiple%n2==0 )
枚举类型的大小是4,和一个int整形大小一样 就是最后一个逗号后面的表达式的值,比如: int a=1,b; b=(a+1,a+2,a+3); 那么b的值就是a+3,也就是4 函数名 :printf
C语言是什么:c语言是人类与计算机交流的语言,是众多计算机语言中的一 种 C语言的源代码本身是文本文件,无法执行,需要编译器的翻译和链接器的链接,生成二进制的可执行文件,才能执行。...C语言代码文件后缀为.c 每个源⽂件(.c)单独经过编译器处理⽣成对应的⽬标⽂件(.obj为后缀的⽂件) 2....C语⾔把 .c 为后缀的⽂件称为源⽂件,把 .h 为后缀的⽂件称为头⽂件。...%d , %c 等是占位符,会被后边的值替换。...下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式 • \ddd :d d d表⽰1~3个⼋进制的数字。 如: \130 表⽰字符X • \xdd :d d表⽰2个⼗六进制数字。
stdio.h> int main(void) { int a=0x11223344; char* pc = &a; *pc=0;//char类型,字符指针,解引用一次访问了1个字节...//字符类型发生变化,解引用内容就发生了变化 int* pc = &a; *pc=0;//int类型,解引用一次访问了4个字节 //指针类型的意义: //1.指针类型决定了指针解引用的权限有多大...整型指针加1会跳过一个整型,字符指针加1会跳过一个字符。...p = arr; //访问arr的地址 int i = 0; //按顺序访问数组元素的下标 for (i=0;i<10;i++) { *(p+i) = 1;...//p+i 其实是下标为i的地址,这一步实为将arr数组中的元素都赋值为1 } //重点在调试的过程中观察内存的变化 return 0; } 指针的解引用总结
题目: 下列用在switch语言中的关键字不包含哪个?...A.continue B.break C.default D.case 错误选项:C 正确选项:A 错误解析: 首先,switch是用来进行多分支选择的语句,一般结构是: switch(变量表达式...) { case xx1: // ...
1.写出一个递归函数,输入一个非负整数,返回组成它的数字之和,例如,输入123,应该返回1+2+3,输出6 //写出一个递归函数,输入一个非负整数,返回组成它的数字之和,例如,输入123,应该返回1+2... 看来只有两位是不一样的,那么这里可以用到异或^ 4.单身狗问题 //找不同 #include int main(void) { int arr[] = { 1,2,3,2,1...2^3^2^1 } printf("%d\n", sum);//3 return 0; } 解释代码:1和2都是成对出现的,如果要找出单个的3,就要用异或^ 1^1 2^2 ...for (int i = 31; i >= 1; i -= 2) { printf("%d", (n >> i) & 1); } printf("\n"); //2.打印奇数位 for...可以进行多次画图,6块钱可以喝到11瓶可乐,7块钱喝到13瓶可乐,找规律,total=2*money -1。
讲完之前的C语言的基础知识后,现在我们来讲讲C语言一个重要的部分--指针 一、内存与地址 1.内存 在讲述内存的相关内容之前,先从生活中的例子来引入。...原来,内存也是被划分成一个个存储单元的,内个单元的大小取一个字节,这里要补充一下一些单位的换算: 1byte = 8bit //1个字节等于8个比特位 1KB = 1024byte 1Mb = 1024KB...1Gb = 1024MB 1TB = 1024GB 1PB = 1024TB 生活中我们将门牌号称之为地址,在计算机中亦是如此,这些内存编号我们也将其称为地址 而在C语言中,这些地址又有了一个新的名字...在C语言中,我们用 “&”这个符号来帮助我们获取地址,并将其称之为“取地址符”。...= %p\n", pi+1); printf("pc = %p\n", pc); printf("pc+1 = %p\n", pc+1); return 0; } 运行结果为: 由此可见,int