首先我们应该了解指针可以分为: 野指针: 野指针不是NULL指针,是未初始化或未清零的指针,他指向的内存地址不是程序员想要的.人们一般不会错用NULL指针,因为用if语句很容易判断.但是“野指针”是很危险的,if语句对它不起作用.野指针的成因主要有两种: 一.指针变量没有被初始化.任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气.所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存. 二.指针p被free或者delete之后,没…
C语言数组与指针的那些事儿 在C语言中,要说到哪一部分最难搞,首当其冲就是指针,指针永远是个让人又爱又恨的东西,用好了可以事半功倍,用不好,就会有改不完的bug和通不完的宵.但是程序员一般都有一种迷之自信,总认为自己是天选之人,明知山有虎,偏向虎山行,直到最后用C的人都要被指针虐一遍. 指针 首先,明确一个概念,指针是什么,一旦提到这个老生常谈且富有争议性的话题,那真是1000个人有1000种看法. 在国内的很多教材中,给出的定义一般就是"指针就是地址",从初步理解指针的角度来说,这种…
在C语言编程中指针经常困扰着我们,但是若能灵活运用指针的话,将会使得我们编程变得更加轻松与高效.这里讲下*p[N], (*P)[N],及**p的区别,这也是之前经常困扰我的地方. 这三者的定义分别为: int  *p[N]表示指针数组,也就是说定义了N个不同指向int型的指针. int (*p)[N]表示定义一个指针,指向一个int[N]型的指针. int **p 表示定义一个指向指针的指针. 注意[]的优先级要高于*. 指针即表示一个存放某种数据类型变量的地址,例如: #include <st…
------------------------------------------------------------------------------------ 回顾:[C语言]指针与字符串 指针的使用: /** * main.c by weiChen in 2015-5-4 */ #include <stdio.h> //定义函数体,使在main方法中能调用 void swap(int *pa, int *pb); void minmax(int c[], int len, int…
以前一直有个疑问,指向不同类型的指针到底占用的内存空间是多大呢? 这个问题我多次问过老师,老师的答案是"指向不同类型的指针占据的内存空间大小不同",我一直很之一这个答案,今天我就做了个小小的实验,发现的确老师的答案是错误的.废话不多说,直接上代码: #include<iostream> using namespace std; void main(){double j=5;double &i=j;double *pi=&i;cout<<"…
昨天刚把<C程序设计语言>中"指针与数组"章节读完,最终把心中的疑惑彻底解开了.如今记录下我对指针声明的理解.顺便说下怎样在C语言中创建复杂声明以及读懂复杂声明. 本文章中的内容參考自<C程序设计语言> 指针是什么就不具体说明了,用一句话来总结就是:"指针是一种保存变量地址的变量". 1.声明简单的指针变量 先看看代码: int i = 1; int *p; //声明一个指向int类型数据的指针变量 p p = &i; //&…
友情提示:阅读本文前,请先参考我的之前的文章<从四个属性的角度来理解C语言的指针也许会更好理解>,若已阅读,请继续往下看. 我从4个属性的角度来总结了C语言中的指针概念.对于C语言的一个指针,比如int *p,4个属性分别如下: C语言指针p=(指针自己的值,与星号结合名,有用数据的值,有用数据的类型); 这4个属性用来理解C语言中单个指针可以,那么本篇再用这4个属性来解释C语言中的"指针的指针". C语言中指针的指针,好多教材一般给出的定义是"变量的地址的地址&…
一.函数 函数是一个包含完成一定功能的执行代码段.我们可以把函数看成一个"黑盒子", 你只要将数据送进去就能得到结果, 而函数内部究竟是如何工作的的, 外部程序是不知道的.外部程序所知道的仅限于输入给函数什么以及函数输出什么.函数提供了编制程序的手段,使之容易读.写.理解.排除错误.修改和维护. 计算1-n的和 #include "stdio.h" void main() { //write once only once 只写一次 ; ;i<=;i++) {…
<C语言进阶剖析>学习笔记                                                         本文总结自狄泰软件学院唐佐林老师的<C语言进阶剖析>课程,在此推荐给想深入学习C语言的同学!                                                                      狄泰软件学院QQ群:199546072                                      …
Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解   多线程c语言linuxsemaphore条件变量 (本文的读者定位是了解Pthread常用多线程API和Pthread互斥锁,但是对条件变量完全不知道或者不完全了解的人群.如果您对这些都没什么概念,可能需要先了解一些基础知识) 关于条件变量典型的实际应用,可以参考非常精简的Linux线程池实现(一)——使用互斥锁和条件变量,但如果对条件变量不熟悉最好先看完本文. Pthread库的条件变量机制的主要API有三个: int…