c++学习6 指针变量】的更多相关文章

一.内存 /* 内存: 存在内存里的. 内存分了N多个小空间,每个小空间1个字节 每个小空间有它自己的地址.每个地址之间差1 int类型占用4个字节,等于占了4个空间(有4个地址),不需要记住4个地址,而记住首地址就行了(因为首地址相当于入口或者生活中的门) 指针: 指针就是地址,地址就是指针. 地址:内存的地址 内存中的地址: 其实也是从1开始编号,然后一直自增 1M内存,1024个地址 0x7fff5fbff7cc:这叫16进制 十进制:逢10进1 有:0 1 2 3 4 5 6 7 8 9…
#深入理解指针变量 举个错误栗子: //以下代码的目的是输出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++ 的时候,我就纳闷了,我这用的好好的,怎么会是病毒软件呢?现在我大概明白了,指针会直接操作内存空间嘛,而可以随意进出一台电脑的内存空间,是什么东…
学习C++ -> 指针初步 一.指针    1. 什么是指针?        我们知道, 计算机的内存是由一个个独立的存储单元组成, 并且系统会对每一个存储单元分配一个唯一的号码, 称为这个存储单元的"地址".分配号码给一个存储单元的目的是为了便于找到它, 从而进行进一步的操作, 比如是读取还是写入.                在C++中, 如果要对某个存储单元进行访问(读取/写入), 有两种方式, 一是通过变量名找到存储地址再进行访问, 二是直接通过存储地址进行访问.  …
C++学习之指针的常见错误       我们在编程的过程中,有时候在使用指针的时候,删除一个指针以后一定要将这个指针设置为空指针,这是因为删除这个指针只是删除这个指针指向的地址,这个指针还真是的存在程序中,并且它仍然会指向原来的内存空间.这时候如果你忘记了这点而再次尝试使用这个指针的时候,那么将会导致程序出错.         这种错误非常难于调试,因为这种值得改变不太容易使人联想到时被删除的安格指针导致的错误,因此在删除一个指针以后,我们一定要将它赋值为空,虽然使用空指针的时候是违法的,容易使…
指针 1. 什么是指针?    2. 指针可不可怕? 3. 指针好不好玩? 4. 怎么学好指针?     C语言是跟内存打交道的语言,指针就是内存地址.指针无处不在,指针并不可怕,相反,等你学到一定程度后,会有一种,看见指针就会有亲切的感觉.     指针是很好玩的东西.大多数人觉得指针难学,都是因为觉得它太抽象,不知道在讲什么,所以我认为学好指针的要领就是画图.将抽象的东西画出来,学到深处,再将画出来的东西抽象化.     另外我从指针开始学习c语言是有原因的.因为后面所谓的 数组 和 结构体…
在一次教程学习中,看到该知识点并记录了下来,希望与大家共同探讨学习. 一.静态存储与动态存储 静态存储变量通常是在变量定义时就分定存储单元并一直保持不变, 直至整个程序结束.动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放.动态存储变量最典型的例子是函教的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时,才予以分配,调用函数完毕立即释放,如果一个函数被多次调用 ,则反复地分配和释放形参变量的存储单元. 从以上分析可知,静态存储变量是一直存在的 ,而动态存储…
前面学习了字符串是一种字符数组,又知道了指针变量和数组的关系,这里来看一下指针和字符串的关系. #include <stdio.h> int main(void){ char str = "hello"; char *ptr = "abcd";  // 这里定义ptr为 char类型的指针, ptr的地址会指向这个字符串的首个字符, . int i; for(i=0;i<4;i++){            // printf("%c&q…
C++中的指针是一个比较复杂的知识概念,最近我有在学习这一方面的知识,就借此文章记录一下在学习时容易产生的混淆.本人初次发技术类的分享,可能会有纰漏,欢迎诸位指正^_^! 1.*在两种语境下的含义 先看这么一段代码: 1 int i = 330; 3 int *p = &i; 5 cout << *p <<endl; 我们都知道,*是反向取址运算符(即依址取值). cout <<*p <<endl; 是依 p变量上的值 为址取值,那么输出330 是符…
◆ 1.指针变量的赋值.初始化与简单应用 ,y; y=; // y可以理解成该存储单元的当前名字 int *ip; // ip是一个指针(变量) ip=&y; // ip是存储空间y的地址 cout<<*ip<<'\n'; //结果15 cout<<ip<<'\n'; //结果001BFC0C cout<<&y<<'\n'; //结果001BFC0C cout<<y<<'\n';; //结果15…