自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c语言常用输入函数使用细节

图中有连续输入,当输入一个 n 和 回车 后,程序直接结束了,fgets自然而然接收了缓冲区遗留下来的 \n , 所以当我们在使用scanf函数并且需要连续输入时,在每一次使用完scanf后,需要用getchar() 吃掉脏数据后, 才能继续从键盘读取。这里键盘输入 a空格b回车结束后,第一个字母a打印出来了,第二个字母变成了空的,这就是第一个scanf读取完a之后,将空格保留在了缓冲区中,第二个scanf直接就接收了缓冲区中的空格字符,所以word2接收的是空格,后续打印ASSCII码值得以验证。

2024-08-09 20:23:10 398

原创 linux父子进程的代码执行理解

红蓝框分别代表父子进程要执行的代码,父子进程分别对num进行写操作,父进程加10,子进程加100,右边结果可以看出父进程先执行 (进程间执行顺序不定),在父进程专属代码区打印出的值为20,然后子进程在专属代码区打印值为110,还是在源num=10基础上加100,可以看出子进程是拷贝了一份父进程的地址,父子进程对num的操作相互独立并不影响。通过fork创建进程后我们需要对其返回值结果,划分子进程和父进程的专属代码区,当fork返回值大于0是为父进程的代码区,等于0时为子进程代码区,小于0则创建进程失败。

2024-08-09 16:35:18 65

原创 c语言strtok函数实用细节

如上面1,2所示的分割过程,第二次strtok时,strtok函数中第一个参数变为了NULL,即函数将 "ni" 分割出来后,将原本空格的位置 (空格也是一个字符,ASCII码值为32) 替换成了 \0 , 所以是从NULL开始分割,NULL和 \0 都代表无值或结束。如1,2的演示,在str_tok函数中,使用了两次strtok, 第一次返回的指针token为 "ni" 的指针。第一个是分割函数返回的字符串,第二个是源字符串,可以发现,已经被修改了,打印碰见\0结束,所以输出 "ni"

2024-08-09 10:36:22 142

原创 C语言生成特定范围随机数

单用rand()函数获取的是伪随机数,必须结合时间戳:srand(time(0));因为时间是不断变化的,所以每次产生的数均不同。

2024-07-04 11:47:41 107

原创 C语言疑难知识点:字符串数组

第一个指针 strArr[0] 指向第一个字符串中的第一个字符。即 *strArr[0] 等于 'i'。第二个指针 strArr[1] 指向第二个字符串中的第一个字符。即 *strArr[1] 等于 's'。每个 strArr[i] 都表示一个字符串,指针都指向对应字符串的第一个字符。因此实际上这个一维数组并不存放真正的字符串,而只是存放字符串的地址。字符串数组有两种表示方法,

2024-07-03 21:18:06 132

原创 c语言字符串两种定义方式

如:当定义了一个和arr2中数据相同的arr5,则编译器不会创建新的字符数组,而是直接复用原来的arr2中的地址,所以arr2和arr5的指针地址相同。至于修改数据,这个很好理解,第二种不可修改,因为数据被在只读常量区。

2024-07-03 15:03:01 147

原创 函数指针和函数指针数组

格式:int (*arr[4])(int,int)={add,subtract,multiply,divide};函数指针数组:将多个返回值类型和返回值个数相等的函数指针 存储在一个数组中。函数返回值类型 (*函数指针名)(参数) = {函数名1,函数名2};函数调用和普通函数调用一致,函数指针数组需要加上数组指针索引。格式: 函数返回值类型 (*指针名)(参数) = 函数名;函数指针可以更灵活的调用函数。代码块2:函数指针数组示例。

2024-07-03 12:26:00 132

原创 指针和二维数组

如图查看二维数组的地址,整个数组的指针地址和第一行a[0]初始地址一致,a[0]作为数组第一行数据的常量指针,又和a[0][0]地址相等。通过查看a[1]也就是第二行可知,步长为12字节,也就是3个int。二维数组可以看作一个包含了多个一维数组的数组。二维数组本质也是按一维数组进行存储的。

2024-07-03 10:53:59 160

原创 指针数组和数组指针的区别

指针数组: 本质是一个数组,数组里面存放的是指针。数组指针: 本质是一个指针,指向数组中的元素。

2024-07-03 10:27:05 348

空空如也

空空如也

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

TA关注的人

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