C语言
hello愚人杰
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【C代码】结构体数组初始化的相关总结
【结构体的存储】1结构体整体空间是占用空间最大的成员(的类型)所占字节数的整数倍。2.结构体的每个成员相对结构体首地址的偏移量(offset)都是最大基本类型成员字节大小的整数倍,如果不是编译器会自动补齐【数组的地址分配后不允许改变】错误:char str[20];str="I love you";/* 此处str为数组首地址,相当于常量,常量不能赋值。这样会修改数组的地址,但是数组的地址分配之后是不允许改变的 */【结构体数组要在定义时初始化。先定义再赋初值是错误的】错误:str原创 2020-09-18 17:59:49 · 2983 阅读 · 0 评论 -
【C代码】strncpy与memcpy区别
strncpy根据指定长度的字符串内容拷贝,当遇到0时则结束拷贝;memcpy根据指定长度的内存内容拷贝数据源: a1 a2 a3 a4 a5 a6 a7 a8 a9 00 b1 b2 b3 b4 b5 b6 b7 b8 b9拷贝长度指定为 19用strncpy之后: a1 a2 a3 a4 a5 a6 a7 a8 a9 00 00 00 00 00 00 00 00 00 00用memcpy之后 : a1 a2 a3 a4 a5 a6 a7 a8 a9 00 b1 b2 b...原创 2020-09-18 17:41:46 · 2080 阅读 · 0 评论 -
【C代码】回调函数
【回调函数】 函数指针是一个指向特定函数的指针。 函数的类型由其参数及返回类型共同决定,与函数具体名称无关。 示例: int fun1(int param1, long param2, float param3); //普通函数定义 该函数的类型为int(int, long, float), 该类型的函数指针可以定义为如下: int (*pfun1)(int, long, float); 要声明一个函数指...原创 2020-09-18 14:38:07 · 337 阅读 · 0 评论 -
【C代码】数组作函数参数退回为一个指针
【数组作函数参数 退回为一个指针】1 正确做法:把数组的内存首地址和数组的有效长度传给被调用函数2 实参a 和 形参a 的数据类型本质不一样形参中的数组 ,编译器会把它当成指针处理——这是C语言的特色。只会分配四个字节(所分配连续内存空间的首元素的地址)的内存,不会分配4*7个字节的内存void sortArray(int a[7], int num)3 形参写在函数名后面的括号()里,和写在函数...原创 2018-04-02 16:11:46 · 285 阅读 · 0 评论 -
【C代码】int b[10]中的b与&b
数据类型的本质:固定大小内存块的别名#include "stdio.h"void main(){ int b[10] ; //告诉c编译器分配40个自己内存 printf("b:%d, b+1:%d, &b:%d, &b+1:%d \n", b, b+1, &b, &b+1);//b:1244972, b+1:1244976, &b:124497...原创 2018-04-02 16:36:24 · 1844 阅读 · 0 评论 -
【C代码】函数执行时的内存四区(附图详解)
在执行一个C语言程序时,此程序将拥有唯一的“内存四区”——栈区、堆区、全局区、代码区.具体过程为:操作系统把硬盘中的数据下载到内存,并将内存划分成四个区域,由操作系统找到main入口开始执行程序。一、栈区由编译器自动分配释放,存放函数的形参、局部变量等。当函数执行完毕时自动释放。#include<stdio.h>char *getMem(){ char buf[64]; //局...原创 2018-04-02 22:32:35 · 24390 阅读 · 7 评论 -
【C代码】sizeof()操作符与strlen()函数
一、概念对比sizeof()是操作符,与!(逻辑反操作、非)、&(取地址符)、~(按位取反)、++、--、*、(类型)等单目操作符类似。其功能是:计算所分配内存块的大小。sizeof()在程序编译时就已经计算过了。注意:由于在编译时计算,因此sizeof不能用来返回动态分配(malloc()函数)的内存空间的大小。strlen()是函数,参数必须是字符型指针(char*),其功能是:返回字...原创 2018-04-04 16:49:19 · 333 阅读 · 0 评论
分享