c语言学习的第11天 指针】的更多相关文章

#include<stdio.h> int main(void) { int * p; int i=3; int j; p=&i; j=*p; printf("i=%d,j=%d\n",i,j); return 0; } p是变量的名字,int *表示p变量存放的是int整形变量的地址, p=&i 表示p保存变量i的地址,那么*p和变量i就等价了,因此该程序输 出结果为3,3,int * p;也可以写成int* p 或者int *p,要注意p=5这样写是不对…
1.指针数组和数组指针的内存布局 初学者总是分不出指针数组与数组指针的区别.其实很好理解:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定.它是"储存指针的数组"的简称.数组指针:首先它是一个指针,它指向一个数组.在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.它是"指向数组的指针"的简称.下面到底哪个是数组指针,哪个是指针数组呢:A) int *p1[10]; B) int (*p2)[10]; 每次上课问这个…
1. 数组参数退化为指针的意义 (1)C 语言中只会以值拷贝的方式传递参数,当向函数传递数组时,将整个数组拷贝一份传入函数导致执行效率低下,C 语言以高效作是最初的设计目标,所以这种方法是不可取的. (2)参数位于栈上,太大的数组拷贝将导致栈溢出. (3)将数组名看做常量指针,传递的是数组的首元素地址,而不是整个数组. 2. 二维数组参数 (1)二维数组参数同样存在退化的问题: 二维数组可以看做是一维数组,其中的每个元素又是一个一维数组 (2)二维数维参数中第一维的参数可以省略 ①void f(…
指针是c语言的灵魂 ----------------------------------------------------------------------------- # include <stdio.h> int main(){ int *p;  //p是变量名,int *表示p变量存放的是int类型变量的地址,p是一个指针变量 int i = 3; //p = i; 这样写是错误的 //p = 4; 这样写是错误的 p = &i;  //将i变量的地址给p变量 //p保存了…
#深入理解指针变量 举个错误栗子: //以下代码的目的是输出100和1000,但输出结果只有一个100 #include<stdio.h> #include<malloc.h> int *zhizhen; void junhe(int *p) { *zhizhen=1000;//原因出现在这 p=zhizhen; } int main() { int *p; p=(int *)malloc(100); *p=100; printf("%d\n",*p); fre…
"指针是C语言的灵魂"这句话一开始我没怎么明白,现在接触了指针,终于知道为什么这么说了,因为....难,真难:下面说一下我对这句话的见解: C语言拥有着其他语言所没有的特性---直接访问内存空间,并进行操作,与这个功能对应的工具便是指针.博主刚开始用 DEV-C++ 那段时间嘛,就有时候写着写着系统提醒我有病毒,而且每次都是我用 Dev-C++ 的时候,我就纳闷了,我这用的好好的,怎么会是病毒软件呢?现在我大概明白了,指针会直接操作内存空间嘛,而可以随意进出一台电脑的内存空间,是什么东…
###10集合迭代中的转型 A:集合迭代中的转型 a:在使用集合时,我们需要注意以下几点:  集合中存储其实都是对象的地址.  集合中可以存储基本数值吗?jdk1.5版本以后可以存储了. 因为出现了基本类型包装类,它提供了自动装箱操作(基本类型对象),这样,集合中的元素就是基本数值的包装类对象. b:存储时提升了Object.取出时要使用元素的特有内容,必须向下转型. Collection coll = new ArrayList(); coll.add("abc"); coll…
先来一个返回指针的测试,结果跟想象一样 type A map[int]string type B struct { A c int } func main() { b := B{make(A), 10} NewB := func() *B { return &b } c := NewB() c.c = 100 c.A[1] = "3" fmt.Println(b, c) } /* output {map[1:3] 100} &{map[1:3] 100} */ 再试试直…
首先,大家先需知道一个关于基类型的概念 基类型:组成一个新类型的基础类型 这句话是什么意思呢?举个例子: int a[3] = {1,2,3}; 上面是由三个int类型的数组成一个新的类型也就是数组,所以基类型是int int a[2][2] = {{1,2},{3,4}}; 上面是由两个一维数组类型组成一个二维数组,所以基类型是一维数组 有了上面两个例子,相信大家能知道基类型是啥意思. 接下来先说说一维数组和一级指针关系 首先指针说白了就是存放地址,把变量地址赋予指针 取出该变量的数值应该用*…
静态内存指的是在编译时系统自动给其分配的内存,运行结束后会自动释放:静态内存是在栈中分配的: 动态内存是我们程序员手动分配的内存,正常情况下,程序运行结束后,也不会自动释放,所以为了避免发生未知的错误,我们需要手动释放动态内存:动态内存是在堆分配的: 动态内存分配问题: #include<stdio.h> #include<malloc.h>//用于调用malloc()函数 int main() { int i=5; //为变量 i 静态分配了4个字节的内存 int *p=(int…
# include <stdio.h> enum WeekDay  //定义了一个数据类型(值只能写一下值) { MonDay, TuesDay, WednesDay, ThursDay, FirDay, SaturDay, SunDay }; int main(void){ enum WeekDay day = WednesDay; printf("%d\n", day); return 0; } 输出结果:2 把一个事物所有可能一一列举出来 枚举的优缺点 优点:代码更安…
考核内容: 写一个程序,可以获取从键盘上输入的的三个数,并能够判断是否可以以这三个数字作为边长来构成一个三角形,如果可以的话,输出此三角形的周长及面积: 答案: #include<stdio.h> #include<math.h> #include<stdlib.h> double b1,b2,b3; double p; bool tool(double b1,double b2,double b3) { if((b1+b2>b3)&&(b1+b3…
###16随机点名器代码实现 * A: 随机点名器案例代码 /* 随机点名器,集合改进 (学生的姓名和年龄) 现实中有学生这个事物,使用定义类的形式,描述学生事物 属性: 姓名,年龄 姓名存储了数组, 将容器换成是集合 String[] s = {"",""}; 集合中,存储的是学生的姓名吗? 应该存储Student类型 存储学生: 学生类型,存储到集合中 总览: 遍历集合 随机: 随机数,作为索引,到集合中找到元素 三个功能,共享的数据,集合容器, 定义三个方法,…
12天学好C语言--记录我的C语言学习之路 Day 11: 因为指针部分比较的难,所以我们花费的时间也是最长的,希望大家耐的住性子,多多理解,多多打代码.好了,废话不多说,来看第11天的学习. //编写一个求定积分的通用函数,分别求出x+1,2*x+3,x*x*x的定积分 /*program 11.1 #include <stdio.h> int main() {     void djf(int x,int y,double (*p)(int,int));//大的函数也要有上下限做形参,因为…
Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这个内存地址可能保存者一个基本数值. 指针变量也是有类型的.它需要知道自己保存的内存地址指向数值的类型,因为不同的数值类型占用的空间大小是不同的. 在指针中有两个重要的符号需要了解: &和. 其中&是用于获取普通变量的地址,而是获取内存地址指向的数值.看起来就是一对反向操作. 另外在声明指针时也…
---恢复内容开始--- 1 作为单片机使用的的 c 语言学习 ++ 增位运算符 在原有基础上加一 -- 相同 由于单片机只有 ~ 取反 & 两个 参数里有没有 | 两个 参数里有没有 ^ 两个参数是否相同 && 交集 || 并集 ! 直接对条件的逻辑值 取反 c 语言的for 循环 for([初始表达式]);[循环表达式];[更新表达式]) {执行语句} 栗子 ; < ; i++) { 执行语句 } 执行语句会执行 次 ---恢复内容结束---   这个真好用    我以为…
iOS学习(C语言)知识点整理 一.指针 1)概念:存储变量的地址的一个变量. 2) 数据存储类型分析 1.text (代码段) :存储二进制的可执行代码 2.data(初始化的数据段) 存储初始化的全局变量以及初始化的static修饰的变量,分为只读数据段 (如:字符串常量,整型常量)及可读可写数据段,静态存储. 3.data(未初始化的数据段)存储未初始化的全局变量及未初始化的static修饰的变量,静态存储. 4.heap(堆区) 内存使用需要手动申请,手动释放,空间非常大,通常存储大容量…
优于他人的技能 会玩双截棍: 我的经验就是Practice make perfect,熟能生巧:还有就是坚持不懈. 关于C语言的学习的回忆 1.我通过老师的教导和课外C语言书籍中学习,和我的技能相比,C语言更注重一种思维方式,C语言是一门可以和机器对话的语言,因此需要懂得机器的工作方式,并且按照其工作原理去思考. 2.我估计我写了3000多行代码,反正自己写的,写过的都理解. 3.通过学习C语言,我可以分清数组指针,指针数组,函数指针,指针函数: 4.其实我学习文件方面的东西比较少,但还能模糊的…
12天学好C语言--记录我的C语言学习之路 Day 12: 进入最后一天的学习,用这样一个程序来综合考量指针和字符串的关系,写完这个程序,你对字符串和指针的理解应该就不错了. //输入一个字符串,内有数字和非数字字符,如:A123x456 17234?532tab32622,然后将,123,456,17234,532,32622这些被非数字字符分割开的数字找出来,输出这些数. //此程序的关键点在于遇到需要输出的字符就记录下来,然后判断他的下一个字符是不是有效字符,有效则不做判定继续执行有效字符…
12天学好C语言--记录我的C语言学习之路 Day 10: 接着昨天的指针部分学习,有这么一个题目: //还是四个学生,四门成绩,只要有学生一门功课没及格就输出这个学生的所有成绩 /*//program 10.1 #include "stdio.h" int main() {     void search(float (*p)[4],int n);     float a[4][4]={{80,70,60,59},{90,75,85,55},{70,90,80,75},{65,95,…
12天学好C语言--记录我的C语言学习之路 Day 9: 函数部分告一段落,但是我们并不是把函数完全放下,因为函数无处不在,我们今后的程序仍然会大量运用到函数 //转入指针部分的学习,了解指针是什么 /*//program 9.1  #include<stdio.h>  int main()  {  int c=123,d=345;  int *a,*b;//定义两个整型的指针变量(int 是指针变量的基类型,我们必须在定义指针变量的时候指定基类型,因为变量的类型不同决定了他们在内存中所占字节…
12天学好C语言--记录我的C语言学习之路 Day 3: 不知不觉到了第三天的学习,我们前两天学习的东西很杂乱,各个方面都有学习.我觉得这不是不系统,也不是学的不扎实,这种学习对于初学者而言我认为是很好的.我们不要循规蹈矩的一点一点按照教科书上的编排去学习,因为那样太慢了,人家的编排是72学时,48学时来的.你没有那么多时间,想要在15天认识C语言,自然需要一些"剑走偏锋".我们虽然杂乱无章,但是记住,在看这15天的记录的时候,一定要多查资料,将这些没有规律的程序在自己的大脑中变的很有…
在给变量分配内存时,很可能这段内存存在以前其他程序使用留下的值.当使用VC编译器,若编译器发现没有给变量赋值而使用,就会返回一个以“85”开头的很大的数字(此时该段内存中为一个垃圾数,为了避免出现较常规的数而使程序员误以为自己已给变量进行过初始化),这个“85”开头的数叫“填充字”,提醒程序员没有初始化变量. #include<stdio.h> int main(void) { int i; printf("i = %d\n", i); } 运行后:   变量对应于内存中的…
有关C语言学习的调查 1.Q:你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训? A:之间在暑假的之后自己有买了一本C PRIME PLUS 来看基本了学习了一点,之后上课,课后完成老师布置的作业. 本来想要自己去做一点OJ来巩固自己的水平,然而基本的语法都还没学会,就打算这个寒假开始这个计划了.与以前学习相比,C语言的学习基本按照了我之前的方法. 2.Q:目前为止估算自己写过多少行C代码?理解的情况如何? A:大概的估算一下,大概2000行左右…
GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var a = 10` `a := 10` (推荐写法) 注意::= 左侧的变量不能是被声明过的 4.定义常量:const关键字定义常量 5.以大写字母开头的常量在包外可见 6.Go语言内置的数据类型: 布尔型 bool 整形 int8.int16 浮点型 float32.64 复数 complex64 字…
C语言中的运算符绝对是C语言学习和使用的一个难点,因为在2011版的标准中,C语言的运算符的数量超过40个,甚至比关键字的数量还要多.这些运算符有单目运算符.双目运算符以及三目运算符,又涉及到左结合和右结合的问题,真是令人眼花缭乱. 1.运算符及优先级 运算符多可能使用更灵活方便,但这还涉及到运算符之间的优先级问题.我们做四则运算式时,有先乘除后加减的规定,在C语言的这些运算符中自然也是有的,但40多个运算符排起优先级来,使用就不那么容易了. 接下来我们简单的总结一下C语言中运算符以及他们的优先…
20165316 技能学习心得与c语言学习 一.技能学习经验 我会打乒乓球,在中国,我只能说我"会"打,至于"比大多数人更好"我不敢断言,因为我无时无刻不感受到乒乓球圈子远比我想象的要深.但是,我觉得乒乓球学习的过程对我今后的学习有所启发,我希望通过总结给大家,最主要还是给自己,一个方向. 像乒乓球这类运动,主要是反复练习,我记忆最深刻的是小学一年级,刚刚能在台子上打球,教练就让我练习多球,即一次使用一个动作套路连续打200到300个球.之后每次练球都必须练习基本功…
原文网址:http://bbs.elecfans.com/jishu_354666_1_1.html 再过1个月又是一年应届毕业生应聘的高峰期了,为了方便应届毕业生应聘,笔者将大学四年C语言知识及去年本人C语言笔试难点进行梳理,希望能对今年应届毕业生的应聘有所帮助. 2013年10月18日更新-->    攻破C语言这个帖子更新到这里,我不仅仅是为了补充大学学生遗漏的知识,我更重要的是希望通过我的经验,你们实际项目中的C语言写得漂亮,写出属于你的风格.“朱兆祺STM32手记”(http://bb…
一.技能学习心得 1.你有什么技能比大多数人好? 我觉得我的篮球打得比一般的人好吧,但是也仅仅掌握了大部分基本的篮球技巧,算不上精通. 2.针对这个技能的获取你有什么成功的经验? 我觉得要打好篮球需要三个重要的因素,一是天赋,二是勤奋,三是兴趣.都说天才是百分之九十九的汗水和百分之一的灵感,但那一份灵感往往是最重要的,甚至比那百分之九十九的汗水都要重要,在篮球运动里面我就把灵感理解成天赋吧.我在中学和大学里面见到过许多篮球技术特别出色的同学,但是受限于身体素质,篮球水平停滞不前.但是,天赋只是一…
普拉塔 (Prata S.) (作者), 云巅工作室 (译者) <C Primer Plus(中文版)(第5版)>共17章,介绍了C语言的基础知识,包括数据类型.格式化输入输出.运算符.表达式.流程控制语句.函数.数组和指针.字符串操作.内存管理.位操作等,知识内容都针对C99标准:另外,<C Primer Plus(中文版)(第5版)>强化了对指针的讨论,并引入了动态内存分配的概念,也讨论了C预处理器和C库函数.高级数据表示(数据结构)方面的内容. 下载地址:点我 编辑推荐 作为…