C语言
文章平均质量分 85
做一道光
互联网软件开发,已转汽车嵌入式软件开发
展开
-
C语言-结构体
/定义了三个struct stu类型的变量,注意不要把struct省略,每个变量都有三个成员,分别是num name sex。2、共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员的值会被覆盖。4字节对齐,即存放double型变量的起始地址,必须是4的倍数,double变量占8字节。8字节对齐,即存放double型变量的起始地址,必须是8的倍数,double变量占8字节。初始化共用体为第一个成员。4字节对齐 ,即存放float 型的变量,起始内存单元的编号是4的倍数即可。原创 2024-02-01 08:42:16 · 790 阅读 · 0 评论 -
C语言-字符串处理函数
既修饰指针变量的类型,又修饰指针变量,则只能通过原本变量修改值。函数一个字符一个字符比较,只要出现不一样的,就会立即返回。修饰指针变量的类型,无法通过指针变量修改地址里面的值。返回切割下来的字符串的首地址,如果都切割完毕,则返回。第一次切割,就传入指定的字符串,后面所有次的切割传。如果使用全局变量的地址修改值,运行时程序异常结束。修饰指针变量,无法修改指针变量保存的地址。查找的时候,查找的是第二个参数的第一个。既修饰指针变量的类型,又修饰指针变量。指向的字符串中,找最后一次出现的。原创 2024-01-31 09:58:18 · 928 阅读 · 0 评论 -
C语言指针与函数的关系
将数组作为参数传递给函数,不存在复制传参和地址传参,本质都是地址传参,所以在函数内部对数组进行改变,则函数执行完毕后,原本的数组也会改变,因为传递给函数的都是数组的地址。c语言规定:函数的名字就是函数的首地址,即函数的入口地址 咱们就可以定义一个指针变量,来存放函数的地址,这个指针变量就是函数指针变量。定义了一个函数指针数组,有10个元素p[0] ~p[9],每个元素都是函数指针变量,指向的函数,必须有整型的返回值,两个整型参数。分析:q是指针数组的名字,是指针数组的首地址,是q[0]的地址。原创 2024-01-30 09:36:05 · 479 阅读 · 0 评论 -
C语言-指针的基本知识(下)
变量存放在内存中,有地址编号,咱们定义的数组,是多个相同类型的变量的集合,每个变量都占内存空间,都有地址编号。注:多字节变量,占多个存储单元,每个存储单元都有地址编号, c语言规定,存储单元编号最小的那个编号,是多字节变量的地址编号。总结:无论什么类型的指针变量,在32位系统下,都是4个字节,只能存放对应类型的变量的地址编号。所以可以用等号给p赋值,但不能给a赋值。//在定义的时候,*不是取值的意思,而是修饰的意思,修饰p是个指针变量。//在调用的时候*是取值的意思,*指针变量 等价于指针指向的变量。原创 2024-01-28 10:45:08 · 598 阅读 · 0 评论 -
C语言-数组指针
/定义了一个数组指针变量p,p指向的是整型的有5个元素的数组。二维数组,有行,有列。二维数组可以看成有多个一维数组构成的,是多个一维数组的集合,可以认为二维数组的每一个元素是个一维数组。a是数组的名字,是a[0]的地址,p=a即p也保存了a[0]的地址,即a和p都指向a[0],所。数组的名字是数组的首地址,是第0个元素的地址,是个常量,数组名字加1指向下个元素。P是个指针,p是个数组指针,p加1指向下个数组,跳10个整形。本身是个指针,指向一个数组,加1跳一个数组,即指向下个数组。原创 2024-01-28 10:47:27 · 2077 阅读 · 1 评论 -
C语言-指针的基本知识(上)
虚拟内存:操作系统虚拟出来的内存,当一个进程被创建的时候,或者程序运行的时候都会分配虚拟内存,虚拟内存和物理内存之间存在映射关系。因为不管地址内的空间多大,但是地址编号的长度是一样的,所以在32位操作系统中,地址都是四个字节。内存以字节为单位来存储数据的,咱们可以将程序中的虚拟寻址空间,看成一个很大的一维的字符数组。在32位平台下,地址总线是32位的,所以地址是32位编号,所以指针变量是32位的即4个字节。在 定义指针变量的时候 * 是用来修饰变量的,说明变量p是个指针变量。int *p,*q;原创 2024-01-27 16:51:07 · 1500 阅读 · 0 评论 -
C语言-预处理
1.C语言的编译过程:预处理、编译、汇编、链接gcc -E hello.c -o hello.i 1、预处理gcc -S hello.i –o hello.s 2、编译gcc -c hello.s -o hello.o 3、汇编gcc hello.o -o hello_elf 4、链接1:预编译将.c 中的头文件展开、宏展开生成的文件是.i文件2:编译将预处理之后的.i 文件生成 .s 汇编文件3、汇编。原创 2024-01-27 14:59:01 · 948 阅读 · 0 评论 -
C语言-变量
在分文件编程中,只需要将函数的实现过程写在指定的.c文件中,然后将其声明写在指定的.h文件中,其他文件只要包含了头文件,就可以使用外部函数。静态变量(定义变量的时候,前面加static修饰),或全局变量 ,没有初始化的,存在此区。内核空间,其中用户空间是当前进程所私有的,内核空间,是一个系统中所有的进程所公有的。局部变量只能在定义的函数内部使用,声明周期相对较短,函数结束,局部变量就会释放。注意:定义静态全局变量的时候,如果不赋初值,它的值默认为0。第一次调用函数的时候,开辟空间赋值,函数结束后,不释放,原创 2023-06-14 18:51:32 · 934 阅读 · 0 评论 -
C语言-函数
如果要返回函数执行的结果,也就是返回值,则return后面跟的变量或者值,必须与函数名左边的返回值类型一致。注:在定义函数的时候,函数的返回值类型,到底是什么类型的,取决于函数的功能。有些情况下,如果不对函数进行声明,编译器在编译的时候,可能不认识这个函数,在定义函数的时候,必须带着返回值类型,在函数体里,必须有return。函数的声明:一般当子函数在主函数的下方时,需要在主函数的上方进行声明。函数的定义不能嵌套,即不能在一个函数体内定义另外一个函数,函数有形参,可以是一个,或者多个,参数的类型随便。原创 2023-06-14 17:08:18 · 842 阅读 · 0 评论 -
C语言-数组
二维数组也是连续开辟空间,访问元素是行和列都是从0开始,分别是a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3]//定义了一个整型的数组a,a是数组的名字,数组中有10个元素,每个元素的类型。//定义了一个名为a的数组,数组中每一个元素都是int类型,一共有10个元素。//并且是从0开始的,分别是a[0] a[1] a[2]... a[9]这十个元素分别是a[0] a[1] …a[0]~a[9]在内存中连续的顺序存储。原创 2023-06-14 14:06:38 · 3973 阅读 · 0 评论 -
C语言-控制语句
运行顺序:将常量表达式的值语句switch后面的表达式的值对比,如果表达式的值刚好等于case后面的某一个值,就会立即去执行case后的语句,如果都不是,则会执行default。首先判断while后面的条件表达式,如果表达式成立(为真),执行语句块,执行完语句块。如果成立,则继续执行do后面的语句块,执行完毕后接着执行while后面的条件表达式,如果表达式2成立,则继续执行语句块,以此类推,直到表达式2不成立,循环结束。先执行表达式1,然后执行表达式2,如果表达式2成立,则执行语句块。原创 2023-06-13 18:39:28 · 523 阅读 · 0 评论 -
C语言-运算符
用运算符将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为C表达式运算对象包括常量、变量、函数等。首先判断表达式A的结果,如果结果为真,则执行表达式B,如果表达式A为假,则执行表达式C。先运行表达式B,再运行表达式C,最后运行表达式D,最终变量A的值为表达式D的值。使用逗号隔开的表达式从左向右依次执行,最后的表达式的值是整个运算的结果。前边的表达式成立,整个表达式的值,是?和:之间的表达式的结果。如果原本表达式为真,则为假,原本表达式为假,则为真。注:对无符号数来说,高位补0,低位溢出。原创 2023-06-13 18:25:44 · 667 阅读 · 0 评论 -
C语言-类型转换
数据有不同的类型,不同类型数据之间进行混合运算时必然涉及到类型的转换问题.(int)(x+y);// 把x+y的结果值转换为整型。把表达式的运算结果强制转换成类型说明符所表示的类型。// 把a的值转换为实型。把表达式的运算结果强制转换成所需的数据类型。遵循一定的规则,由编译系统自动完成.1、占用内存字节数少(值域小。(类型说明符) (表达式)的类型,向占用内存字节数多。通过类型转换运算来实现。类型说明符必须加括号。原创 2023-06-13 17:03:52 · 365 阅读 · 0 评论 -
C语言-数据类型
有/无符号长整型(un/signed) long (int) 4个字节 (32位处理器)以反斜杠“\”开头,后跟一个或几个字符、如'\n','\t'等,分别代表换行、横向跳格.ASCII 码表:对于计算机而言,只能识别二进制数,也就是数值,对于非数值型数据,如果。%-3d 要求宽度为3位,如果不足3位,后面空格补齐;如果足够3位,此语句无效。%3d 要求宽度为3位,如果不足3位,前面空格补齐;%03d 要求宽度为3位,如果不足3位,前面0补齐;每个字符串的结尾,编译器会自动的添加一个结束标志位'\0',原创 2023-06-13 16:25:09 · 556 阅读 · 0 评论 -
C语言-关键字
因为该编译器是使用的32位的,所以long类型显示的是占4个字节,在64位的编译器上面long类型显示的是占据8个字节。4、long 长整型 用long 定义的变量是长整型的,在32位系统下占4个字节,在64位系统下占8个字节。5、 float 单浮点型 (实数),用float定义的变量是单浮点型的实数,占4个字节。数据的时候用signed修饰,代表定义的数据是有符号的,可以保存正数,也可以保存负数。3、int 整型 ,用int定义的变量是整型变量,在32位以上的系统下占4个字节。原创 2023-06-13 15:10:30 · 814 阅读 · 0 评论