疑惑、问题、生疏及解决(持续更新)

疑惑

一、视频41,第30.56处???(疑问点!!!)常量?

请添加图片描述

void func(char **ptr)
{
	(*ptr)++;
}
char str[20] = "hello world"
char *ptr =“hello world”;
func(&ptr);

str字符数组可以修改,str数组名首元素地址,是常量,不能修改
ptr 是常量,不能修改
*ptr 取指针所指的空间的值
&ptr 指针地址

1.关于为什么是func

问题

问题1:UTF - 8编码格式是什么(已解决)

UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部分修改后,便可继续使用。

问题2:printf里%#x是什么(已解决)

%#x格式说明

问题3:什么是段错误?(未解决)

解引用空指针
访问不可访问的内存空间(如内核空间)
访问不存在的内存地址
试图写一个只读内存空间(如代码段)
栈溢出(函数递归调用)
使用未初始化的指针(定义时没有初始化或者已经回收)
推荐网址:[Linux] 什么是 段错误(吐核)?

生疏

生疏1:printf的理解(已解决)

%类
%c字符
%f浮点数
%s字符串
%p指针
%#x格式说明
%e浮点数

生疏2:关于原码、反码、补码的纠纷(已解决)

1.计算机只做加法
2.是补码之间的运算,算完后是结果的补码,
再看符号位,如果是0,直接读,如果是1,需要转成原码
3.正数的原码反码补码都一样
4.符号位,0为正,1为负
5.反码时,是后7位反码
6.负数进来是原码,需要进行反码,补码才能运算
7.对于负数,反码+1是补码(补码-1是反码)

小知识
技巧:存储时看数据,取出时看类型

  1. exit(0),表示正常退出,exit(1)便是异常退出
  2. C语言中汉字在常见的中文编码 GB2312(国标简体中文字符集)和 GBK(国标扩展)使用 2 个字节编码来表示一个汉字,不常用的 GB18030 使用 4 个字节编码来表示一个汉字,更通用的 UTF-8 编码使用 3 个字节编码来表示一个汉字。关于编码方式的更详细的介绍请移步文末参考链接。
posted @ 2022-01-17 14:47  周末不下雨  阅读(17)  评论(0编辑  收藏  举报