自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 C语言核中核——指针(5)

sizeof单独放了数组名,计算的是整个数组大小,有些同学会斩钉截铁的说是6,但是需要注意的是我们这里的数组是一个字符串,而字符串是自带\0的,只不过隐藏掉了,你不能说它不存在,它存在了就一定会占用内存,所以我们这里应该是6+1=7。这里我们很容易会想当然0,1,2,3,4,5,都是数组中的元素,但是需要注意的是这里是括号表达式,每个括号之间都有逗号,所以每个括号表达式是一个元素,而括号表达式的结果又是后一个数字,实际上整个数组的元素是1,3,5,0,0,0。p+1就是b的地址,解引用p得到a,程序崩溃。

2024-01-29 10:06:34 876

原创 C语言核中核——指针(4)

我们不妨想想如果我们使用整型指针,一次跳过四个字节,而我们比较的是字符型的数据只占一个字节,将会导致一些数据根本就没有参加比较过程!参数第一个指向需要排序的数据的起始地址,第二个参数是需要排序的数据个数,第三个参数是每个数据所占字节的大小,第四个参数是一个函数指针用来比较数据大小的函数。这个时候我们就可以使用回调函数来简化代码,创立一个函数,参数为函数指针,其中放入上面代码相似的部分,这样每种情况下只需要调用新创立的函数,参数为对应运算方法的函数名即可。所谓回调函数,就是一个通过函数指针来调用的函数。

2024-01-24 20:45:19 301 2

原创 C语言核中核——指针(3)

⾸先我们再次理解⼀下⼆维数组,⼆维数组起始可以看做是每个元素是⼀维数组的数组,也就是⼆维 数组的每个元素是⼀个⼀维数组。所以,根据数组名是数组⾸元素的地址这个规则,⼆维数组的数组名表⽰的就是第⼀⾏的地址,是⼀ 维数组的地址。首先str1和str2是两个数组名,代表的是两个数组首元素的地址,我们很容易知道这两个数组地址一定是不一样的,所以首元素地址更不可能相同,所以第一个if else语句执行了else。:p先和*结合,说明p是⼀个指针变量变量,然后指着指向的是⼀个⼤⼩为10个整型的数组。

2023-12-29 17:08:16 780 2

原创 C语言的核中核——指针(2)

同理arr[i] 应该等价于 *(arr+i),数组元素的访问在编译器处理的时候,也是转换成⾸元素的地址+偏移量求出元素的地址,然后解引⽤来访问的。这⾥我们发现&arr[0]和&arr[0]+1相差4个字节,arr和arr+1 相差4个字节,是因为&arr[0] 和 arr 都是⾸元素的地址,+1就是跳过⼀个元素。这⾥我们使⽤ &arr[0] 的⽅式拿到了数组第⼀个元素的地址,但是其实数组名本来就是地址,⽽且 是数组⾸元素的地址,我们来做个测试。数组名如果是数组⾸元素的地址,那下⾯的代码怎么理解呢?

2023-12-23 15:43:09 829 1

原创 C语言的核中核——指针(1)

但是x和a的地址不一样,y和b的地址不一样,x和y是独立的存在,在Swap1函数里面交换,对函数外面的a和b没有任何影响,所以我们看见a和b的值并没有交换Swap1函数在使⽤ 的时候,是把变量本⾝直接传递给了函数,这种调⽤函数的⽅式我们之前在函数的时候就知道了,这种叫传值调⽤。本质是⼀种约定出来的共识!我们知道计算上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数 据也会放回内存中,那我们买电脑的时候,电脑上内存是8GB/16GB/32GB等,那这些内存空间如何⾼ 效的管理呢?

2023-12-17 15:39:33 42 2

原创 操作符详解

16进制的数字每⼀位是0~9,a ~f 的,0~9,a ~f的数字,各⾃写成2进制,最多有4个2进制位就⾜够了, ⽐如 f 的⼆进制是1111,所以在2进制转16进制数的时候,从2进制序列中右边低位开始向左每4个2进 制位会换算⼀个16进制位,剩余不够4个⼆进制位的直接换算。2进制和10进制是类似的,只不过2进制的每⼀位的权重,从右向左是: 2的0次方,2的一次方.... 如果是2进制的1101,该怎么理解呢?结构的每个成员可以是不同类型的变量,如: 标量、数组、指针,甚⾄是其他结构体。

2023-11-26 15:08:05 22 2

原创 C语言的数据类型和变量

为了防⽌这种情况,使⽤ %s 占位符时,应该指定 读⼊字符串的最⻓⻓度,即写成 %[m]s ,其中的 [m] 是⼀个整数,表⽰读取字符串的最⼤⻓度,后 ⾯的字符将被丢弃。它的第⼀个参数是⼀个格式字符串,⾥⾯会放置占位符(与 printf() 的占位符基本⼀致),告诉编 译器如何解读⽤⼾的输⼊,需要提取的数据是什么类型。上⾯⽰例中, scanf() 读取⽤⼾输⼊时, %d 占位符会忽略起⾸的空格,从 - 处开始获取数据,读 取到 -13 停下来,因为后⾯的 . 不属于整数的有效字符。

2023-11-19 14:08:54 26

原创 初识C语言

借助控制语句我们可以实现各种程序的结构(C语言支持顺序,选择,循环三种结构),大家有没有发现我们日常生活中的每件事都几乎能够用这三种结构去实现或者说去解决我们日常生活中的问题。常常用在这⾥需要⼀条语句,但是这个语句不需要做任何事,就可以写⼀个空语句。如同数学中的复合函数一样,语句中还包含着其他的语句,共同去完成同一个目的,也被叫作代码块。3.转向语句:break语句,return语句,go to语句,continue语句。2.循环执行语句:do..while语句,for语句,while语句。

2023-11-04 12:43:26 33 2

原创 C语言的分支与循环

在这个程序中,我们输入4的话,可以满足if后面的条件,就会执行printf,反之不满足则会执行else后面的内容。同时,你如果想要执行多条语句,那么你可以加上一个大括号,将if()后的语句全部包含进去即可。C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实 现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种 结构的组合。需要注意的是else会与最近的if构成if else语句,一定要注意对应的关系。

2023-10-26 00:14:21 26 2

原创 初识C语言

如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这个叫做编码,为 了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C语 ⾔中的字符就遵循了 ASCII 编码的⽅式。实际上,在字符串的末尾隐藏着一个\0,它的作用就是告诉计算机到此停止,相当于一个结束的标志。如:\x30表⽰字符0 \0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其 ASCII码值是0。转义字符,顾名思义,改变了原来字符的意思。

2023-10-21 14:27:38 24 2

原创 初识C语言

一般初学者建议使用vs2022社区版,它对代码的质量要求比较高,可以很好的帮助我们培养好我们写代码的习惯。所谓的main就是我们的main函数也被叫作主函数,它起到的是一个入口的作用。那int是什么意思呢,int是表示main函数执行完了一个要返回一个整型类型的值,所以我们我们写了一个return 0即返回一个0也就是这里说的整型类型。解答一下前面的问题,在一个项目中只能有一个main函数,如果有多个即有多个程序入口,计算机它就无法辨别该从哪一个入口进入,编译器就会报错,程序就无法正常运行。

2023-10-15 12:37:36 41

原创 一个进军编程的萌新QWQ

学习方式:1,通过看视频的方式,听老师讲解有关C语言的基础概念。2,以后我也会在CSDN上写一些博客来记录自己学习编程的过程,还有对学习的语言的一些概念的认识。作为一个刚接触编程的小萌新,主要还是想通过学习编程来应对今后的学习以及找工作问题。尤其是当下就业较为困难的当今,所以我打算先从学习C语言开始,一步一步迈进编程的殿堂(狗头)。接下来该谈谈自己的目前来说可能不切实际的梦想,就是拿到腾讯的offer。腾讯作为一家大厂,无疑是许多程序员的目标,不过还是得对自己有信心。试试又不吃亏,万一进了呢,对吧。

2023-10-10 22:28:11 228 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除