- 博客(17)
- 收藏
- 关注
原创 #c语言学习—指针试题
逗号表达式从左向右计算,表达式的最终结果是表达式2的结果。式1是我么常见的二维数组的定义方法,依次存入了六个数。式2其实只定义了三个数 1 3 5,放进了二维数组中。打印的时候其实打印了a[0][0]也就是1。逗号表达式(表达式1,表达式2)上述两语句是完全不同的结果,
2023-09-02 12:26:32 28
原创 #c语言学习—指针程序设计
void Swap(char* buf1, char* buf2, int width)//逐字节交换int i = 0;for (i = 0;i < width;i++)buf1++;buf2++;int i = 0;for (i = 0;i < sz - 1;for (j = 0;j++)//交换。
2023-08-30 13:52:53 21 1
原创 #c语言学习13—指针进阶2
回调函数就是通过函数指针调用的函数。如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的方式直接调用,而是由另一方调用的。通过函数指针数组实现,减少了代码的冗余情况,而且后期更加便于维护。指针数组,本质上是一个数组,数组里存放的内容是指针变量。函数指针,是一个指针,指针指向了函数名称(函数地址)当有多个函数需要存放其地址时,就需要函数指针数组。是函数指针数组,所以。
2023-08-29 21:30:05 25 1
原创 #c语言学习12—指针进阶1
int* parr[3], [ ]的优先级比*高,所以意思是,我们创建了一个parr[3]的数组,数组中的每个元素都是 指针 * ,并且指针指向的是一个int型。( )的优先级比 [ ]高,所以我们定义了一个指针,指针的名称叫p,p指针指向了元素个数为10的int数组。第二个比较的是指针p1和p2存放的地址是否相同,因为二者都指向了字符常量的空间,所以相同。指针有不同的类型,类型决定了指针的加减操作步长,以及指针解引用时的步长或者说是权限。首先是一个指针,其次,他是指向一个数组的指针。
2023-08-28 19:10:52 20 1
原创 #c语言学习11—数据存储
char//字符型short//短整型int//整型long//长整型long long//更长的整型float//单精度浮点型double//双精度浮点型整型家族char//char在内存中存储的是ASCAII值shortintsigned intlong浮点型家族floatdouble构造类型数组类型结构体类型 struct枚举类型 enum联合类型 union指针类型int*char*float*void*
2023-08-27 13:49:07 18 1
原创 #c语言学习09—指针
可以看到,int char 等四种类型的指针大小是相同的,这是因为指针变量存放的是一个地址,以64为为例,那么地址就是64位8个字节,所以指针变量的大小都是8个字节。并且,用int* 和char* 存放了&a,发现内容相同。对于数组来说,对于指向任意一元素的指针1,允许其和数组最后一个元素后面的那个 指针(内存)相比较,不可以和数组第一个元素前面的那个指针(内存)相比较。——————————p存放的地址在test()结束之后就已经被回收了。————————————i=10和11时 p就变成了野指针。
2023-08-24 18:36:37 20 1
原创 #c语言学习08—操作符和表达式
在计算i等于几时,a是a++,先用在加所以是用0和后面的数值相与,在a是0的情况下,后面与之相与根本不需要算,所以吧b d没有++由逗号隔开的多个表达式就是逗号表达式,从左向右依次执行,整个表达式的结果是最后一个表达式的结果。在函数调用时,传递的是数组地址,所以test1 test2输出的数组地址是8(64位)解释:如果表达式exp1成立,则表达式exp2是返回值,否则就是exp3为返回值。移位操作符操作的都是数的补码,正数的反码 补码 原码相同,复数的原码需要计算。
2023-08-23 20:26:48 16 1
原创 #c语言学习05
add.h//头文件中的声明要加“;#endif有必要对前两行以及最后一行进行说明,比如stdio.h文件,我们在include时,是将这个头文件所有代码都cpy过来的,如果多次include同一个头文件,就会cpy多次stdio.h里的所有代码过来,造成浪费。ifndef 是 if not define ,如果没有定义,那么久define(前两行),然后到最后一行结束如果add.cint main()int x,y;add(x,y);
2023-08-17 20:34:53 17
原创 #c语言学习03
可以看到每次进入sum,c的初试值都是0,经过+1变成1,而b则进入sum会继承上次循环所留下的数,因为b是一个静态变量,使用完后不收回存储空间,静态存储。该字符串共有五个字符,所以用sizeof会读出来5,那么求下标应该减掉2,而strlen求的是字符串长度,读的是4,所以下标应该减掉1.算法说明:求24 18,用大的对小的取余,24%18=6,再用18对6取余,取余结果为0,则小的那个数就是最大公约。效果: welcome to csdn!需要注意的是,对于right赋值不同函数的用法。
2023-08-15 21:46:39 14 1
原创 C语言学习02
作用;筛选出输入字符中的所有数字并输出。用ret判断读取的数据是否已经到缓冲区尾部,如果没到就进入循序,用ret小于字符0或大于字符0来判断跳出当前循环,若在0-9之间,则打印当前字符。这里if判断语句也可以把字符变成其ASCII码值来判断。
2023-08-14 17:39:27 31
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人