c和指针
findgeneralgirl
这个作者很懒,什么都没留下…
展开
-
字符指针数组
鉴于最近常常将指针数组,与数组的指针互相混淆,也便于自己的理解,对指针数组做一个基础性的介绍。指针数组的定义:char *str[10];char *代表了其类型为字符指针类型 ( 同理 int *代表了整型指针类型)str[10]为字符指针数组,存储了9个字符指针变量,最后一个为NULL,代表了字符指针数据的结束字符指针数组的初始化:char *str[10]={"we原创 2017-07-28 17:49:59 · 2102 阅读 · 2 评论 -
程序的编译链接过程
平常在编程完之后,点击生成解决方案,然后运行,就会得到我们需要的结果,这个结果是怎么来的,在这个过程,会发生错误,错误又分为几类错误呢?它们分别发生在编译连接的哪个阶段?是什么问题造成的呢? 在这个过程中,能看到现象却看不到本质,面对各种问题,让我们无所适从,现在就先对编译链接过程进行一个简单的剖析。#include<stdio.h>int main(){ printf("hello w原创 2017-10-18 18:00:28 · 670 阅读 · 0 评论 -
return和exit函数区别及杨辉三角
return和exit的区别return和exit函数都是正常中断时所调用的函数。 1.exit函数结束的是当前进程/当前程序,在整个程序中,只要调用exit就结束了。int fun(){ printf("now fun started\n"); printf("\n"); int arr[10] = { 12, 23, 34, 45, 56, 67, 78, 89, 9原创 2017-10-02 17:11:30 · 273 阅读 · 0 评论 -
内联函数
内联函数:当编译器发现某段代码在调用一个内联函数时,它不是去调用该函数,而是将该函数的代码,整段插入到当前位置(比如说下面的实例程序,在main函数中,调用到foo这个函数时,会将代码展开为a+b插入到主函数中)。这样做的好处是省去了调用的过程,加快程序运行速度。int foo(int a,int b){ return a+b;}在正常的编译过程中,调用到一个函数时,需要将其调用的参数原创 2017-10-19 15:59:20 · 387 阅读 · 0 评论 -
数组名和指针的区别
数组名和指针之间,经常会交替使用这两个变量,比如,把一个指针当成数组来使用,或者是把数组名赋值给指针,通过指针来访问数组成员变量,但是,数组名和指针之间到底有什么样的联系与区别,以及什么情况下该使用指针,什么情况下该使用数组名,我对这个做一个小小的解读。。 上图中,定义一个数组,数组名为arr,分别打印arr本身的地址,arr首元素的地址,以及arr本身,以整型形式输出,发现,这三者的值是相同原创 2017-11-10 17:16:54 · 25076 阅读 · 23 评论 -
c语言中i++和++i的区别
自行打印printf("%d %d",i++,--i);这一行代码,会发现编译器给出的值和我们所想象中是不一样的,我将从汇编的角度对前置++与后置++做一个简单的解释。普遍化的解释: 前置加加:先取值,然后再加加 后置加加:先加加,再取值具体分析如下:下图为上面printf语句的汇编代码: 最开始执行了下面这几句代码: 这三句汇编中执行了–操作,说明,printf函数中,两个i,先计原创 2017-10-28 16:18:25 · 35858 阅读 · 12 评论 -
c和c++中const,指针和引用
一.不同标准下const特性 c语言所用的标准为C89;c++所用的标准为C++99,在这两个标准下,对const特性有不同的定义. c89: 1.const为一个常变量,编译器将其当成一个变量进行编译。唯一与变量不同的地方是:不能将const作为左值来使用。我们知道,改变一个值的方式有很多中,const不能作为左值,但通过指针访问const变量,依然可以改变const所修饰的变量的值。 2原创 2017-10-25 21:59:25 · 450 阅读 · 0 评论 -
c++ 顺序容器---vector
对顺序容器这四个字一直不太理解,《c++primer》中对其作出解释为:为程序员提供了控制元素存储和访问顺序的能力。换种方式理解:不管是在这类容器中存储元素,访问元素还是删除元素,它都其自身的数据结构特点确定了一定的访问顺序,是一种有序的访问,并非无序的访问。如图1,顺序容器如下:////////////////////////////////////////////////////////---...原创 2018-04-05 12:35:14 · 2006 阅读 · 0 评论