本人工作Android开发越往高深方向专业,就越发现c语言的重要性.可以说java是简单的封装语言,但大量封装起来的不灵活,而Android的自带的java代码往往有些功能并不完美,这就导致高级开发就会自己来做底层功能库.

写一遍博客复习一遍c语言.

学习指针总结,分清指针意思:

提问:int* p和int *p和(int*)p和int **p;以上4种写法有什么区别?

前三种是一个意思,即p是int型指针变量(首先: p是一个指针,其次p指向int型)最后一种为: p是指向指针的指针(首先: p是一个指针,其次,他指向的类型为int*,也是一个指针,也称二级指针)

记住一点: 指针是与地址操作紧密相关的。如:int b;int *p = &b;p指向b, 实际上是p这个存储单元存储的内容是b存储单元的地址。

就上面的声明,通常来说p意味着指针(跟地址相关),*p为指针所指向的值,是值。所以*p=*b为赋“值”操作,int b=10;*p=b也是赋“值”操作,而如果写成p=b,则两边类型不匹配,编译时就是提示错误,在这做法在PC机端不常用,但嵌入式开发中,经常会用到,此时应做强制类型转换。
再举个栗子:

int *p;
int i=10;
p=&i;

这个时候*p就是10,p就是指向10的指针的值。

--------代码使用理解

#define _CRT_SECURE_NO_WARNINGS //宏定义
//引入头文件
//只有函数的声明,编译时会去找到函数的实现
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>/*
void main(){//基础的hello world输出printf("hello world\n");    system("pause");
}
*///1.基本数据类型
//int short long float double char
/*
int %d
short %d
long %ld
float %f
double %lf
char %c
%x 十六进制
%o 八进制
%s 字符串
*/
/*
void main(){int i = 1;float fnum = 23.3; //纯c中声明变量全部放在main函数里int n = 0;printf("%d\n",i);//float fnum = 23.3;//在一些版本上会报错,放在前面printf("%f\n",fnum);//基本数据类型所占的字节数printf("int占%d字节\n",sizeof(int));printf("char占%d字节\n", sizeof(char));printf("float占%d字节\n", sizeof(float));//循环for (; n < 10; n++){printf("%d\n",n);}//等待输入system("pause");
}
*///2.输入输出函数
/*
void main(){int i;printf("请输入一个整数:");//赋值scanf("%d",&i);  //控制台输入,&取地址符//打印printf("i的值为:%d\n",i);system("pause");
}
*///指针
//指针存储的是变量的内存地址
//内存地址,系统给数据分配的编号(门牌号)
/*void main(){int i = 90;//指针变量,创建一个int类型的指针int* p = &i; //p的值就是i这个变量的内存地址float f = 89.5f;//创建一个float类型的指针float *fp = &f;printf("%#x\n",p);printf("%#x\n", fp);system("pause");
}*/void change(int* p){*p = 300;
}//变量名,对内存空间上的一段数据的抽象
void main(){int i = 90;//i = 89;//创建一个int类型的指针int *p = &i;//输出地址printf("p的地址:%#x\n",&p);printf("i的地址:%#x\n",&i);printf("i的值为:%d\n", i);printf("p指针的值为:%d\n", *p);//间接赋值 i = 200;//对p存的地址指向的变量进行操作//*p = 200;//change(p);change(&i);  // int *p = &i;printf("i的值为:%d\n",i);system("pause");
}/*
void main(){int time = 600;printf("time:%#x\n",&time);while (time > 0){time--;printf("游戏时间剩余%d秒\n",time);//睡眠Sleep(1000);}system("pause");
}
*/

心得:计算机语言的规则其实是差不多的,但是书写语法上有一些特别点和区别,从java上看c,实际上c的指针和特殊写法比较麻烦,所以要想再学习c,实际上就是学会c的特殊点

c语言学习02指针总结相关推荐

  1. C语言 指针 规范,C语言学习知识指针习题集附规范标准答案.doc

    C语言学习知识指针习题集附规范标准答案.doc /*一.选择题1. 变量的指针,其含义是指该变量的_________. a值 b地址 c名 d一个标志2若有语句int *point,a4;和point ...

  2. C语言学习笔记---指针

    C语言要玩的好,指针是核心,但是指针在学习的时候看教程往往感觉一看就明白,但是实际用的时候一用就错,而且还不知道错在哪.为了更加深刻的了解指针,将学习过程记录下来,依次加深对指针的理解. 先看看一段测 ...

  3. C语言学习笔记——指针章节

    学习小结 c语言指针学习笔记汇总 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>//指针 //在计算机科学中,指针是编程语言的一个对 ...

  4. c语言普通变量间接访问,C语言学习笔记-指针

    野指针问题 野指针是没有指向地址的指针,也就是该指针指向的地址是随机的. 因为指针的指向地址是随机的,所以很有可能指向不可访问的弟子,导致程序崩溃,或者访问了不该访问的地址,导致影响其他功能使用 为了 ...

  5. c语言指针在左还是右,C语言学习之指针的右左法则

    C语言所有复杂的指针声明,都是由各种声明嵌套构成的.如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法.不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法.C标准的 ...

  6. c语言学习-使用指针求一个字符串的长度

    c语言使用指针求一个字符串的长度 程序流程图: 代码: #include<stdio.h> #define N 81 void main() {char str[N],*string=st ...

  7. C语言学习笔记---指针和数组

    数组是相同类型的数据集合,会在内存中占用连续的一块内存.而指针是存储的一个地址,在内存中不会占用连续的内存. 先来写一段测试代码 void fun(void) {int i;int num[10]={ ...

  8. c语言学习-使用指针对三个变量互相赋值

    有3个整型变量i, j, k请编写程序,设置3个指针变量p1,p2,p3,分别指向i, j, k.然后通过指针变量使i, j, k 3个变量的值顺序交换,即把i的原值赋给j,把j的原值赋给k,把k的原 ...

  9. C语言学习之指针 *p++、*(p++)、(*p)++

    总结 *p++与*(p++)是等价的,该表达式返回*p,即p表示的地址所存的数据,并且指针p自增1 (*p)++ 该表达式返回*p,即p表示的地址所存的数据,然后该数据自增1 C编译器认为*和++是同 ...

最新文章

  1. 【带你重拾Redis】Redis 主从架构
  2. 4种方法可以缓解网络瓶颈
  3. java中random的头文件_JAVA中的Random()函數
  4. [译]Stack View 自定义间隙
  5. AutoMapper的使用
  6. C++查看各种数据类型所占字节和最大最小值(数据范围)
  7. HTML5游戏引擎Egret发布2.0版 开发工具亦获更新
  8. 运行时错误7内存溢出_C++程序运行时的内存模型
  9. iphone图片编辑画笔_iPhone手机怎么编辑图片?还不知道的话真的要了解一波了~...
  10. 计算机科学与技术培养计划,计算机科学与技术专业培养方案(2017版).PDF
  11. 小程序源码:独家全新娱乐性超高的喝酒神器
  12. linux 内核调试 booting the kernel.,booting the kernel后无内核启动信息的调试方法
  13. 修改电脑qq的聊天背景
  14. 【算法训练营学习笔记-Week06】一遍不懂就多刷几遍
  15. twrp显示 failed to mount system
  16. 接盘恒大、清债,自救的华远地产能度过地产寒冬吗?
  17. 加密解密软件VMProtect教程(八)许可制度之序列号生成器
  18. 关于谷歌收购摩托罗拉移动的评论
  19. linux双系统没有wifi,遇到了双系统中win下关闭了wifi,ubuntu中也无法启用的情况...
  20. 一文解惑,对于SCI论文投稿Under Review状态的一万种解读

热门文章

  1. [-UI设计-] UI设计文档
  2. FileSaver.js 客户端保存文件的解决方案
  3. lumia 830起死回生
  4. 修改(My)Eclipse默认的Servlet和jsp代码模板
  5. Python format函数——学习笔记
  6. perl语言中qq, qw等关键字的用法总结
  7. 10 本最佳 Linux、UNIX 编程书籍
  8. Druid连接池 报错:abandon connection原因分析
  9. Edge浏览器 2020船新版本 比chrome好用太多的原因 前端必选浏览器之一 换它换它换它
  10. 关于异步Promises