不懂指针就不要说自己学过C语言!
不懂指针就不要说自己学过C语言!
1、掌握了指针,就掌握了C语言的精髓!计算机中绝大部分数据都放到内存中的,不同的数据放到不同的内存区域中。
内存角度没有数据类型,只有二进制;数据以字节(8位二进制)为单位存取。
不同数据类型占据不同的字节,32位系统中:int 为4个字节,short为2个字节。
2、int i = 5;
printf("%d\n",&i);
int j=5;
printf("%d\n",&j);
3、&i表示:获得变量i所指向内存的地址,地址也是数字。
4、既然&是取地址,那么就可以用int类型存储指针地址:
int iAddr = &i;
short、long、char等的地址都可以用int表示。不过如果用int表示各种指针,那么就不知道内存中到底放的是什么类型(其实内存中也不知道是什么类型,都是一堆字节数据而已)。
一般用“类型指针”:int *iPtr = &i; printf("%d\n",iPtr);结果是一样的。
5、使用*取指针指向的内存数据。 int j=*iPtr;
6、还可以通过指针修改变量的值:
int i = 5;
int *iPtr = &i;
*iPtr = 6;//区别就在于是否是声明,和放在=的左边还是右边没关系
printf("%d\n",i);
7、总结:
*的两个用途:
1)声明的时候用来声明指针变量: int *iPtr;
2)除了声明变量的时候,其他时候*用来表示获取指针指向的数据。
&用来获取变量的地址。
本节代码:
#include <stdio.h> int main(int argc, char *argv[])
{
int i = ;
printf("%d\n", &i);
int j = ;
printf("%d\n", &j);
/*
int iAddr = &i;
printf("%d\n",iAddr); char c1 = 'a';
int iC1 = &c1;
printf("%d\n",iC1);
*/
int* iPtr = &i;//Pointer=ptr。星号和类型在一起就是声明指针
printf("%d\n", iPtr);
int i1 = *iPtr;//取iPtr指针指向的内存中的数据
//类型化的指针,知道是从内存中取几个字节
//*放到指针变量前面代表“取指针地址指向的数据” printf("i1=%d\n", i1); *iPtr = ;//把100存到iPtr指向的内存中
printf("i=%d\n", i);
/*
char c1 ='a';
char *c1p = &c1;
char c2 = *c1p;
*/
return ;
}
不懂指针就不要说自己学过C语言!的更多相关文章
- 闭嘴,给你一个数!1分钟,学完C语言指针,不扎手只扎心的针!
序言 指针是C语言学习者绕不过的一道坎,也是C语言学习者不得绕过的一道坎.辨别一个人C语言学的好赖就看他对指针的理解怎么样.指针内容也是工作面试经常问到的问题.本文将带你重新认识那个绊倒你的指针,以解 ...
- C语言学习书籍推荐《学通C语言的24堂课》下载
下载地址:点我 编辑推荐 <学通C语言的24堂课>:用持续激励培养良好习惯以良好习惯铸就伟大梦想——致亲爱的读者朋友在开始学习<学通C语言的24堂课>的同时,强烈建议读者朋友同 ...
- 学了C语言,如何利用cURL写一个程序验证某个网址的有效性?
在<C程序设计伴侣>以及这几篇关于cURL的文章中,我们介绍了如何利用cURL写一个下载程序,从网络下载文件.可是当我们在用这个程序下载文件时,又遇到了新问题:如果这个网址是无效的,那么我 ...
- 学了C语言,如何写个程序计算出每个月的第一个星期一对应的日期
在前面,我们分别利用泰勒公式和C标准库中的mktime()函数推算了某个特定日期所对应的星期几,刚做完这些,就又遇到了一个与日期相关的新任务: 老板把每个月例会的时间定在了每个月的第一个星期一,他让我 ...
- 学了C语言,如何利用CURL写一个下载程序?—用nmake编译CURL并安装
在这一系列的前一篇文章学了C语言,如何为下载狂人写一个磁盘剩余容量监控程序?中,我们为下载狂人写了一个程序来监视磁盘的剩余容量,防止下载的东西撑爆了硬盘.可是,这两天,他又抱怨他的下载程序不好用,让我 ...
- 学了 C 语言到底能做什么, 能从事什么工作?
前言 经常有小伙伴问我,你是做C/C++的,那学C语言可以做什么呢?尤其是还在学校的同学,感觉自己学了很久,什么也做不了,一度怀疑自己是不是不适合程序员这个方向. 开始我都是直接说可以开发嵌入式啊,做 ...
- 教孩子学编程 python语言版PDF高清完整版免费下载|百度云盘|Python入门
百度云盘:教孩子学编程 python语言版PDF高清完整版免费下载 提取码:mnma 内容简介 本书属于no starch的经典系列之一,英文版在美国受到读者欢迎.本书全彩印刷,寓教于乐,易于学习:读 ...
- 忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(5)有趣的指针
一.指针是C语言的灵魂 # include <stdio.h> int main(){ int *p; //p是变量名,int *表示p变量存放的是int类型变量的地址,p是一个指针变量 ...
- 不懂Neo4j?没关系,先学增删改查
从上篇文章中我们了解到了什么是Neo4j.为什么要用Neo4j.什么场景使用 以及怎么安装,如果您还不想熟悉,点击此处,传送过去哦~ 既然Neo4j是一个图数据库,那么毫无疑问,增删改查是必不可少的, ...
随机推荐
- jQuery Length属性
Length属性 属性用于返回当前jQuery对象的元素个数. 语法 jQueryObject.length 返回值 Number类型 返回该jQuery对象封装的DOM元素的个数. 实例说明 代码 ...
- Linux系统移植(1) ------搭建交叉编译环境
本人的开发环境是ubuntu12.05的64版本,运行在11.00的虚拟机上.首先说明为什么需要搭建交叉编译环境.我们知道,我们的开发一般在PC机上,是基于X86架构的,而我们的开发板却是基于ARM架 ...
- gulp与webpack-stream集成配置
webpack非常强大,但是也有不足的地方,批量式处理依然是gulp更胜一筹.我们是否可以将两者的优点结合起来呢? 这篇文章就是讲述如何集成gulp和webpack 1.安装webpack-strea ...
- js获取当前日期时间格式为“yyyy-MM-dd HH:MM:SS”
废话不多说,直接上代码! <!DOCTYPE html><html><head> <meta charset="utf-8"> ...
- 如何编写高质量的Javascript代码
1.避免全局变量,因为全局变量容易发生名称上的冲突,可维护性不好. a,使用命名空间 b,使用闭包 c,在函数内部使用var声明 2.编写可维护的代码 a.可读性 b.连续性 c.预见性 d.看起来是 ...
- mybatis if判断中的特殊符号
在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]&g ...
- 高德地图JavaScript开发
项目需求:标注一个或者两个点.显示信息窗体.自定义icon <!DOCTYPE html> <html lang="en"> <head> &l ...
- Cognos10安装注意事项
cognos10用db2做content management注意事项 1. 建议用UTF-8格式字符2. 建议pagesize用8K或者8K以上3. 新建数据库缓冲池pagesize和以上1.2设置 ...
- JavaScript箭头函数 和 generator
箭头函数: 用箭头定义函数........ var fun = x=>x*x alert(fun(2)) //单参数 var fun1 = ()=& ...
- 推荐两个谷歌的json-view插件(附带下载分享地址)
1.JSONView 网盘下载地址:http://pan.baidu.com/s/1hrGlaVa 效果图: 2.JSON-handle 网盘下载地址:http://pan.baidu.com/s/1 ...