C和指针之部分理解和编码总结

1、在C语言中,当一维数组作为函数参数的时候,编译器总是把它解析成一个指向成一个指向其首元素首地址的指针

     这也就是为什么数组int a[10],a不能a++操作,而把a传递给函数的时候,可以作为指针a++操作的原因。

 

 

2、内存为0的地址处,也就是NULL地址处,一般定义指针变量的同时最好初始化为NULL,然后使用完指针之后也将指针变量的值设置为NULL,防止野指针。

 

 

3、如果没有返回值,编译器则默认为函数返回的值是int类型。

 

 

 

4、函数的入口处用assert宏作入口校验
   一般在函数入口处使用assert(NULL != p)对参数进行校验,在非参数的地方使用if(NULL != p)来校验,但是有个要求,是p在定义的同时被初始化为NULL,如果p指针没有被初始化为NULL,其内部是一个非NULL的乱码

#include <stdio.h>
#include <assert.h>int main()
{char *p = NULL;
//   char c = 'a';
//   p = &c;assert(p != NULL);printf("hello");return 0;
}

 

 

如果我注释了那2行,程序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

王道408数据结构——第五章 树与二叉树

文章目录一、树的基本概念树的性质二、二叉树满二叉树完全二叉树二叉排序树平衡二叉树二叉树的性质完全二叉树的性质三、二叉树的储存结构顺序储存链式存储四、树的储存方式双亲表示法孩子表示法孩子兄弟表示法&#xff08;二叉树表示法&#xff09;五、二叉树的遍历先序遍历&a…

Redis集群监控RedisClusterManager

Redis集群监控RedisClusterManagerRedisClusterManager监控Redis集群1234环境要求&#xff1a;Java8jdk配置这里略过RedisClusterManager 下载地址&#xff1a;https://git.oschina.net/yanfanVIP/RedisClusterManager/releases1234567891011121314151617181920212223242526272…

Visual Studio怎么使用中文帮助文档

今天给大家带来vs中怎么使用帮助文档&#xff1f;事情起因是这样的&#xff0c;上周有个哥们问我问题&#xff0c;字符串怎么分割啊&#xff0c;我当时有点忙&#xff0c;我就说你去看看帮助文档。然后过了三十秒 我看见他打开了百度。。。。。。我郁闷了 &#xff0c;我说你直…

C和指针之函数之在数组中找特定元素并返回指向该位置的指针

1、问题 在数组中找特定元素并返回指向该位置的指针2、代码实现 #include <stdio.h> #include <stdlib.h>//数组中找特定元素并返回指向该位置的指针 int *find_int(int key, int array[], int array_len) {int i;for (i 0; i < array_len; i){if (array[i] k…

逻辑推理题

25匹马找前3名或者前5名&#xff0c;最少用几次&#xff1f; 火车站集合&#xff0c;最后一个人几点到&#xff1f;转载于:https://www.cnblogs.com/kira2will/p/4058223.html

sublime快捷键收藏

快速查找&#xff08;ctrl P&#xff09;输入函数名可以快速找到函数。输入#文本可以快速进行文件内文本匹配。3. 多行游标功能&#xff08;ctrl D&#xff0c;非常实用&#xff09;如何将文件中的某个单词更改为另一个&#xff1f;方法一&#xff1a;利用查找替换功能&#…

C和指针之函数之归以字符形式按顺序打印数字的每位数字(递归和非递归)

1、问题 以字符形式按顺序打印数字的每位数字(递归和非递) 2、代码实现 #include <stdio.h> #include <math.h> //以字符形式按顺序打印数字的每位数字,比如4267,打印4267 //递归实现void printf_char(unsigned int value) {unsigned int tmp;tmp = value / 10;…

王道408数据结构——第六章 图

文章目录一、图的基本概念二、图的储存邻接矩阵邻接表十字链表邻接多重表三、图的基本操作四、图的遍历广度优先搜索&#xff08;BFS&#xff09;深度优先搜索&#xff08;DFS&#xff09;图的遍历和图的连通性五、最小生成树Prim算法Kruskal算法六、最短路径Dijkstra求单源最短…

使用 python 的 urllib2和 urllib模块爆破 form 表单的简易脚本

python 的 http 中 urllib2和 urllib模块在web 表单爆破的使用方法脚本中还增加了 urllib2和 urllib模块如何添加代理的方法# -*- coding: utf-8 -*- import urllib2 import urllib import timedef brute_force(user, password):#strip() 方法用于移除字符串头尾指定的字符&…

如何在 ASP.NET Core 中为同一接口配置不同的实现

前言通常&#xff0c;我们使用依赖注入时&#xff0c;一个接口仅对应一种实现&#xff0c;使用时可以直接得到实现类的实例&#xff0c;类似这样&#xff1a;services.AddScoped<IServiceA,ServiceA>();public WeatherForecastController(IServiceA service) { }但是&…

jQuery学习笔记2

一、获取并设置CSS类&#xff1a; 1、addClass( ) 方法 &#xff1a;可以选取多个元素&#xff0c;也可以在该方法中规定多个类。 1 $("#div1").addClass("important blue"); 2 $("h1,h2,p").addClass("blue"); 2、removeClass( )方法…

分析windows宿主机Ping不通linux虚拟机的其中一种情况

ping不通的情况是由于设置网络选项的时候&#xff0c;可以看到界面名称的选择如下(当前选择的是无线网卡驱动): ping得通的情况是由于设置网络选项的时候&#xff0c;可以看到界面名称的选择如下(当前选择的是有线网卡驱动): 分析原因是由于电脑有两个网卡驱动&#xff0c;一个…

C和指针之函数之实现阶乘和斐波那契数(递归和非递归)

1、问题 实现阶乘和斐波那契数(递归和非递归) 2、代码实现 #include <stdio.h>int num = 0; //递归实现斐波那契数 // n <=2, f(n) = 1, n > 2 f(n) = f(n - 1) + f(); long fibonacci(int n) {//计算fibonacci(3)计算了多少次if (n == 3)num++;if (n <= 2){p…

同事都说有SQL注入风险,我非说没有

前言现在的项目&#xff0c;在操作数据库的时候&#xff0c;我都喜欢用ORM框架&#xff0c;其中EF是一直以来用的比较多的&#xff1b;EF 的封装的确让小伙伴一心注重业务逻辑就行了&#xff0c;不用过多的关注操作数据库的具体细节。但是在某些场景会选择执行SQL语句&#xff…

​【v2.x OGE-example 第二节】 实体参数

【v2.x OGE-example 第二节】 实体参数1. 位置&#xff1a;Drawing_example --> SpriteParameters2. 类名&#xff1a;SpriteParameters(1)旋转精灵&#xff1a;sprite.setRotation(float pRotation) 设置旋转角度sprite.setRotationCenter(float pRotationCenterX, float p…

王道408数据结构——第七章 查找

文章目录一、基本概念二、顺序查找&#xff08;线性查找&#xff09;一般线性表的顺序查找有序表的顺序查找二、折半查找&#xff08;二分查找&#xff09;三、分块查找&#xff08;索引顺序查找&#xff09;四、B树五、B树六、散列表构造散列函数1. 直接定址法2. 除留取余法3.…

L1-004.计算摄氏温度

给定一个华氏温度F&#xff0c;本题要求编写程序&#xff0c;计算对应的摄氏温度C。计算公式&#xff1a;C 5*(F-32)/9。题目保证输入与输出均在整型范围内。 输入格式&#xff1a; 输入在一行中给出一个华氏温度。 输出格式&#xff1a; 在一行中按照格式“Celsius C”输出对…

C和指针之函数之可变参数

1、可变参数如何实现 可变参数列表是通过宏来实现的,这些宏定义在stdarg.h头文件中,这个头文件声明了一个类型va_list和三个宏,va_start、va_arg、va_end,一般我们声明一个类型为va_list的变量,和这个几个宏配合使用,访问参数的值。 2、实现一个函数多个参数求均值 比…

hadoop:could only be replicated to 0 nodes, instead of 1

在Hadoop的环境搭建过程中&#xff0c;常常会遇到类似这样的错误信息提示&#xff1a;“could only be replicated to 0 nodes, instead of 1 ”&#xff0c;产生这样的错误原因有多种&#xff0c;这里列举出以下四种常用的解决方法以供参考&#xff1a; 确保master&#xff08…

System.Type类

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Reflection; namespace ConsoleApplication1 {class Program{static void Main(string[] args){//System.Type类//获取指向任何给定的类型…