C 指针 *p &p p [问题点数:20分,结帖人superman139]

Bbs1
本版专家分:0
结帖率 84.62%
Bbs1
本版专家分:1
Bbs7
本版专家分:13136
Bbs7
本版专家分:13136
Bbs4
本版专家分:1517
Bbs7
本版专家分:22971
Blank
红花 2011年7月 C/C++大版内专家分月排行榜第一
Blank
黄花 2011年8月 C/C++大版内专家分月排行榜第二
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs12
本版专家分:381359
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs12
本版专家分:381359
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs3
本版专家分:856
Bbs7
本版专家分:19039
Blank
红花 2012年6月 扩充话题大版内专家分月排行榜第一
Blank
黄花 2012年1月 扩充话题大版内专家分月排行榜第二
Bbs7
本版专家分:22971
Blank
红花 2011年7月 C/C++大版内专家分月排行榜第一
Blank
黄花 2011年8月 C/C++大版内专家分月排行榜第二
Bbs1
本版专家分:0
(*p)指针间接赋值
零级<em>指针</em>到一级<em>指针</em>的推演<em>指针</em>指向哪个变量,就是把相应的变量的地址赋值给他
指针 *p++与(*p)++的区别
1.根据运算优先级,*与++时同一优先级,因此无法直接判定结合性,又由于一元运算符具有由右向左结合,因此*p++ 等价于*(p++),即先将<em>指针</em>后移,然后取值 2.(*p)++ 为先取当前p所指的值,然后所取值加1 例: int main(int argc, char** argv) {     int a[5]={0,1,2,3,4};     int *p = a;     cout
char指针的问题**p
本人学C++有一段时间了,最近回头看C++概念搞得很混乱。rn比方说:rnvoid GetMemory(char **p)rn *p=(char *)malloc(100); rnvoid main()rn char *str=NULL;rn GetMemory(&str,100);rn strcpy(str,"hello");rn cout<
C指针 C指针 C指针 C指针 C指针 C指针 C指针
C<em>指针</em> C<em>指针</em> C<em>指针</em> C<em>指针</em> C<em>指针</em> C<em>指针</em> C<em>指针</em>
关于指针问题,为什么输出的指针p和&p不一样呢?
[code=C/C++]rn#include rnusing namespace std;rnint main ()rnrn int *p=0;rn cout<
p指针的++p 和p+1相同吗?
#include "stdafx.h"rn#include "stdio.h"rnrnint main(void)rnrn int num=0;rn int * p=#rnrn printf("%d\n%d\n",p, ++p);rnrn printf("%d\n%d\n",p, p+1);rnrn return 0;rnrn看这段代码。输出结果为 01245056,01245056,01245056,01245060。rn也就是说, 此时++p和P+1不一样。rn应该是一样的。不知道是哪里出了问题。
if(!p)是什么意思,p是指针
if(!p)是什么意思,p是<em>指针</em>,if(!)是什么意思
p是指针,strlen(p)是什么意思?
同上
C语言*p、p以及&p的区别
前言: 先要理解地址和数据,你可以想象有很多盒子,每个盒子有对应的号码,那个号码叫做“地址”,而盒子里放的东西叫做“数据”。 上面就段理解了,*p和p的区别就不难解释了。 p是<em>指针</em>变量,用来存放地址,你可以认为是上面所说的盒子的号码,“*”是解引用操作符,你可以把它理解成打开盒子,*p就是打开p号盒子,取出里面的数据。 简单来说,你记住,p存放的是地址,而*p是让程序去那个地址取出数据。总结
指针C与指针C与指针
C与<em>指针</em>!!!!!!!!!!!!!!!!!
int *p=new int;*p=5;delete p;指针问题
int *p=new int;rn*p=5;rndelete p;rn请问以上只是把p<em>指针</em>的内容释放了导致p成为了野<em>指针</em>,rn还是把p<em>指针</em>以及它所指向的内容也都删除了,以后这个程序中就没有p<em>指针</em>了
C指针 C指针C指针C指针C指针C指针
C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>C<em>指针</em>
C和指针 c和指针
《C和<em>指针</em>》提供与C语言编程相关的全面资源和深入讨论。《C和<em>指针</em>》通过对<em>指针</em>的基础知识和高级特性的探讨,帮助程序员把<em>指针</em>的强大功能融入到自己的程序中去。全书共18章,覆盖了数据、语句、操作符和表达式、<em>指针</em>、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答。
C和指针C和指针C和指针
C和<em>指针</em>C和<em>指针</em>C和<em>指针</em>C和<em>指针</em>C和<em>指针</em>C和<em>指针</em>C和<em>指针</em>
C和指针 C和指针C和指针C和指针.pdf
C和<em>指针</em> 建议阅读一下,读完感觉还不错建议阅读一下,读完感觉还不错
C和C和指针C和指针
C和<em>指针</em>C和<em>指针</em>C和<em>指针</em>C和<em>指针</em>C和<em>指针</em>C和<em>指针</em>C和<em>指针</em>C和<em>指针</em>
详解:C语言中的指针和p, p+1, *(p+1), *P+1, p[0], &p[0] 的含义
解析:C语言中的<em>指针</em>和p, p+1, *(p+1), *P+1, p[0], &p[0] 每一种表达式的含义  一、先解决一个问题:什么是<em>指针</em> <em>指针</em>就是存放地址的变量。很好,百度上就是这个答案(哈哈,感觉这句话很废话)。 <em>指针</em>是一个大小固定为4个byte的变量,不管是什么类型的<em>指针</em>大小都是固定的,因为存放是一个地址信息。 void main() { int a = 1; cha
求C语言高手指点:请问如何指针定义二维数组?? 请用 **p ,(*P)[ ] ,*p[ ] 三种来进行指针定义_百度知道...
C 求C语言高手指点:请问如何<em>指针</em>定义二维数组?? 请用 **p ,(*P)[ ] ,*p[ ] 三种来进行<em>指针</em>定义_百度知道 1年 ago mqzi 来源: 求C语言高手指点:请问如何<em>指针</em>定义二维数组?? 请用 **p ,(*P)[ ] ,*p[ ] 三种来进行<em>指针</em>定义_百度知道 pdf下载地址 Continue Reading Previous c语言函数<em>指针</em>的理解与使用 – ...
指针p指向数组dd ?
#include rnmain()rnrnint dd[2][4];rnint (*p)[4]; rnrnrnrnrn这个的意思应该是<em>指针</em>p 指向 数组dd , 为什么不是写成" int (*p)[2][4];rn
什么情况下用指针p^?????
-
C++ 笔试中的指针 *p
请找出下面程序中有哪些错误: int main() { int i=10; int j=1; const int *p1;//(1) int const *p2=&amp;amp;i; //(2) p2=&amp;amp;j;//(3) int *const p3=&amp;amp;i;//(4) *p3=20;//(5) *p2=30;//(6) p3=&amp;amp;...
指针*p与地址之间的关系
结论:逻辑内存中,每个字节对应一个地址,也就是每个字符对应一个地址,一个int型的变量由于是4个字节,就会对应4个地址。我们只有取到整型的首地址才能得到完整的int型数据    二.理解为什么char*可以这样char *str =”char test”直接赋值,int型的<em>指针</em>不能直接int *a = {1,2,3}赋值           给<em>指针</em>赋值就是让其指向一个地
通用指针*p存放结构
在单片机中通用<em>指针</em>*p的存放结构是什么样的,三个字节的存放<em>指针</em>的地址空间里面都是什么内容,例如物理地址0xC00000,如果<em>指针</em>指向这个地址,那么存放此通用<em>指针</em>的三个字节中的内容分别是0xC0,0x00,0x00吗?请具体解释,如能引证更佳.
返回整型数据的指针int *p
int *p与整型变量 int a = 3; int *p ; *p = &a;//不合法,出错 *p值改变,p指向的变量的值也会改变 int b; int *p = &b; *p = 100; cout << &b << ":变量b的地址:" << p << endl; cout<< "*p赋值会改变变量b的值:" << b << endl; cout 打印结果:
指针%p输出的一些认识
还是看源码发现的问题static int import_lowe_features( char*filename, struct feature** features )这个函数的作用是将txt文件中的Lowe的特征点导入到feature结构体中。在这个函数中第二个参数是指向结构体的<em>指针</em>的<em>指针</em>。f = calloc( n, sizeof(struct feature) );//在内存的动态存储区中...
C和指针 pdf c和指针
c和<em>指针</em> 经典杰作c和<em>指针</em>pdf,好不容易才找到的。。
C语言指针,int a=1; int *p; 其中p=&a和*p=&a有什么区别?p的值是否相同?
<em>指针</em>本质就是存储内存地址的一个变量。所以<em>指针</em>可以指向某个变量在内存中存储的单元格嘛。变量去访问单元格最后也是编译器通过变量名和地址一一对应去查找的。而<em>指针</em>里面直接存储的就是地址,所以直接可以访问地址所对应的单元格。不知道楼主说的是说明情况。所以几种可能的都说一下:测试代码#include &quot;stdio.h&quot;#include &quot;conio.h&quot;main(){ int a=1; i...
UNIX中*p和printf("%c", *p)的区别??
C专家编程,看到了如下一段话rn“在UNIX中,当进程需要更多空间时,堆栈会自动生长。程序员可以想像堆栈是无限大的--这是UNIX胜过其他操作系统如MS-DOS的许多优势之一”rn于是就自做主张,写了如下两个程序,来测试UNIX这种NB的堆栈:rnrn系统: Mac OS Xrngcc版本: 4.2.1rnrn/*rn** A程序rn*/rn#includernrnintrnmain( void )rnrn char i = 'A';rn char *p = NULL;rn int time = 1;rnrn p = &i;rn while ( 1 ) rn p++;rn ++time;rn if ( (time % 100) == 0 ) rn *p;rn printf( "now the pointer is on %p\n", p );rn rn rnrn return 0;rnrnrnrn这个程序跑了10分钟没问题rnrnrn/*rn** B程序rn*/rn#includernrnintrnmain( void )rnrn char i = 'A';rn char *p = NULL;rn int time = 1;rnrn p = &i;rn while ( 1 ) rn ++p;rn time++;rn if ( (time % 100) == 0 ) rn printf( "now the pointer is on %p\n", p++ );rn printf( "*p = %c\n", *p );rn rn rnrn return 0;rnrnrn但是这个程序跑了大概10秒就出现了“Segmentation fault”的字样。查了下Segmentation fault的几个主要原因:rn1、解除引用一个包含非法值的<em>指针</em>rn2、解除引用一个空<em>指针</em>rn3、未得到正确的权限时进行访问rn4、用完了堆栈或堆空间rnrn先排除3。rn至于1、2、4,想象不出在A不出错的情况下能符合哪点。。那么,B的Segmentation原因到底为何?为什么*p可以,printf()出来就不行?
keil c中p=p是什么意思?
void main()rn unsigned char p;rn unsigned char xdata *ad_adr;rn lcd_init();rn Lcdplay("X",0);rn Lcdplay("Y",8);rn Lcdplay("Z",16);rn ad_adr = &IN0;rn TimeInitial();rn while(1) rn *ad_adr = 0; p=p; p=p;rn while(EOC==0);rnrn IntToStr(ad_action(0)*1.0/255*10,&TempBuffer[0]);rn Lcdplay(&TempBuffer[0],1);rnrnrn rn rn其中p=p是什么意思?rn请教!~~~~~
指针和引用,以及int *p、int *&p、int &*p、int**p
https://www.cnblogs.com/alephsoul-alephsoul/archive/2012/10/10/2719192.html <em>指针</em>和引用一般用于函数传参使用,因为传递实参到被调函数后,不能直接修改实参的值(被调函数只能使用形参,形参在被调函数结束后自动释放),所以需要传递<em>指针</em>或引用来实现修改实参。 <em>指针</em>本质上是一个变量,存储着指向另外某变量的地址,所以传到被调函数的是...
c语言指针篇——数组指针和指向二维数组的指针变量(*p)[N]
数组<em>指针</em> 首先,我们先介绍一下二维数组和二维数组的<em>指针</em>,二维数组相当于一个特殊的一维数组里面每个元素又是一个一维数组,例如:int a [ 3 ] [3],可以看成一个3行的一个列数组,每一列的元素又是一个长度为3的数组,数组名的一个特殊一维数组的首地址,如下: a(第0行的首地址,也是可以是&a [0])指向a [0],对0行首地址元素的引用就有 *a = a [0]; a + 1...
C语言指针问题!总觉得p改变了
#include rnvoid sp(int *a)//这里传入的是prnrn int b=2;rn a=&b; //这里赋值的时候,是不是改变了p的指向?为什么?rn *a=*a*2;rn printf("%d,",*a);rnrnmain()rnrn int k=3,*p=&k;rn sp(p);//这是按地址传递吗?它传到形参a时会产生一个与它一样的临时<em>指针</em>变量吗?rn printf("%d,%d\n",k,*p);rn rn看了一天了,希望大神指点迷津[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/10.gif][/img]
【c语言】*p++、*++p、(*p)++、++*p 的区别学习
为了清晰明了,我们每次都使p指向数组的首地址。 (1)*p++ int b = *p++;//等价于a = *(p++); 即a = *p; p = p + 1; 执行上面语句,输出b=10 执行语句*p++;后,*p=20; (2)*++p int d = *++p;//等价于 p =p+1; d=*p; *和++的优先级相同,但根据它们的右结合性可知,先p=p+1;后d...
C语言基础知识:*p++与*++p;(*p)++  与 ++(*p)的理解
首先查看C语言运算符优先级表,可以看到++和<em>指针</em>的*号运算优先级都是第二级。结合方向都是“右到左” *p++:等同于:*p;  p += 1; 解析:由于*和++的运算优先级一样,且是右结合。故*p++相当于*(p++),p先与++结合,然后p++整体再与*结合。前面陈述是一种最常见的错误,很多初学者也是这么理解的。但是,因为++后置的时候,本身含义就是先运算后增加1(运算指的是p...
C语言指针定义成int(*p)[]的误区
int (*p)[4];意义是定义一个<em>指针</em>,指向4个int大小的空间。而非定义一个4个int*的数组。所以*p++一次偏移16个字节。 int main() { int (*pp)[4]; int xx[6][4] ={0}; pp = xx; printf(&quot;%x\n&quot; , &amp;amp;xx[0][0] ); printf(&quot;%x\n&quot; , &amp;amp;xx[2][0] ); pr...
c语言指针字符串char*const p一些问题
1.使用char*const p是不是只能定义一个字符,而不能定义字符串,因为我在实验的时候发现如果定义一个字符串,printf("%s\n",p);显示不出来,而且我发现如果把%s改成%c也无法显示,但是既然定义的是字符,不应该%c才能显示吗?怎么倒过来了
C语言中*p++ ,(*p)++ ,*++p ,++*p的区别
1、*p++ 先取<em>指针</em>p指向的值(数组第一个元素1),再将<em>指针</em>p自增1; (* 和++ (单目运算)两个处于同一优先级,结合方向是自右向左 但是前提是当++在变量前面的时候才处理同一优先级,当++在变量之后时,你可以将++的优先级看成最低级的,比逗号运算符的优先级还低**) 2、(*p)++ 先去<em>指针</em>p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2 3、++p 先将...
P转C心得
不会/滑稽(以后开始更,相当于日志吧)。
C语言”%p”的意思
(1) 图示 :(2) %p是打印地址的, %x是以十六进制形式打印, 完全不同!另外在64位下结果会不一样, 所以打印<em>指针</em>老老实实用%p .(3) 测试代码 :#include&amp;lt;stdio.h&amp;gt;int main(){     int arr[5] = {10,20,30,40,50};     int i = 0;     printf(&quot;数据:\n\n&quot;);     printf...
《C和指针》——指针运算
<em>指针</em>运算的主要问题是边界问题,如果在边界值外的值没在循环判断的条件中使用,那么最后一步的位置(索引)越界是可以的,但是如果使用了,那么会存在潜在问题。 如下程序:for (vp = &values[N_VALUE - 1]; vp >= &values[0]; vp--){ *vp = 0; }原因:在数组第1个元素被清除之后,vp 的值还将减去1,而接下去的一次比较运算是
c和指针详解------指针
<em>指针</em>的深入了解以后后期复习
C和指针(第六章---指针
通过例子来熟悉<em>指针</em>: /* a地址为100 b地址为104 c地址为108 */ int a = 112, b = -1; float c = 3.14; int *d = &amp;amp;a; float *e = &amp;amp;c; int *f = &amp;amp;d; float *g = &amp;amp;e; // a = 112 b = -1, c = 3.14; /...
C与指针:第六章:指针
1、通过一个<em>指针</em>访问它所指向的地址的过程称为间接访问或解引用<em>指针</em>。这个用于执行简介访问的操作符是单目操作符。2、*&amp;amp;a = 25;     将25赋值给变量 a 。&amp;amp;操作符产生变量 a的地址,它是一个<em>指针</em>常量(这个<em>指针</em>常量并不需要知道它的实际值),* 操作符访问其操作数的所表示的地址。3、<em>指针</em>常量假定变量 a 存储于位置100,*100 = 25; 这条语句是错误的,因为字面值10...
C界面编程总结.p
C界面编程总结.p
[C语言]p记数法
在C99/C11使用,浮点数,十六进制数和p记数法shiyong %a。 例如: printf(&quot;%a&quot;,a);
也是关于*p=&c?
有此说明int a,b,*p=&c;问如何从键盘输入三个数赋给a,b,c三个量,有以下答案rnA.scanf("%d%d%d"&a,&b,p) B.scanf("%d%d%d",&a,&b,&c)rn选哪个?如何解释?
指针操作分析——"p++"、"*p++"、"*p=*p+1"、"(*p)++"
    之前在OpenCV3教程中发现<em>指针</em>运算有时候会用括号把<em>指针</em>变量括起来,有时候则不括起来。所以进行了如下分析来观看各种操作的效果。测试的代码如下:#include &amp;lt;iostream&amp;gt; using namespace std; int main() { int *p;///声明一个<em>指针</em>变量 int n[20];///创建一个简单的数组用于观察<em>指针</em> fo...
void freePtr(T* & p), p是指针引用吧
<em>指针</em>引用一般什么时候用到啊
指针的问题,p:=nil和not Assigned(p)是不是一样的
如题
指针使用%p输出,区分%x与%p的区别?
几年前写的一个模块,前几天准备把它拿出来编译成64位的版本使用,因为对于windows的API一直是按照参数微软文档给出的原型进行调用,也没有<em>指针</em>到整数的强转,因此整个编译几乎没遇到问题,直接生成64位版本,但是测试时发现一个问题,所有的运行log输出的地址值都不对,64位系统下log里记录的还是32位的地址值,显然是被截断的地址值。看了一下代码,原来所有<em>指针</em>的格式化用的都是”%x”,真是欲哭无泪,
初学指针,请问*p=&a和p=&a有什么区别
初始化为int a;rn然后如题。rn而且我觉得<em>指针</em>貌似是多此一举,可能是我不了解为什么有时候非要间接访问吧,请高手指点。
关于指针的问题*p,不能做p[i]操作吗?
rn    rn m_ArPolicyVhlStru.RemoveAll();rn lpVhlStru3=(PolicyStru*)pData;rn for(int i=0;i m_ArPolicyVhlStru;rn为一个结构体数组,rnlpVhlStru3为一个指向PolicyStru的<em>指针</em>rnrn编译时没有问题,但执行到m_ArPolicyVhlStru.Add(lpVhlStru3[i]);时,程序就崩溃了,rn不知道什么原因,请高手解答!
关于指针*p,指针指针**p,以及二维数组的理解
<em>指针</em>*p的理解:p代表地址(p的值是一个地址),*p代表该地址下存放的值 例如 p=32,地址32里存放的值为45,则*p=45 <em>指针</em>的<em>指针</em>**p:p代表地址(p的值是一个地址,这个地址里面存放了*p的值),*p的值仍然是一个地址(这个地址里存放了**p的值) 例如 p=32,地址32里存放的值为48,则*p=48,地址48里存放的值为1,则**p=1 代码:使一个<em>指针</em>的<em>指针</em>指向二...
指针)*p++ 自增p 还是p 所指向的变量?
(<em>指针</em>)*p++ 自增p 还是p 所指向的变量?           后缀++ 和-- 操作符本质上比前缀一目操作的优先级高, 因此*p++ 和*(p++) 等价, 它自增p 并返回p 自增之前所指向的值。要自增p 指向的值, 使用(*p)++, 如果副作用的顺序无关紧要也可以使用++*p。
问一个指针赋值问题*p=a和p=&a
程序:输入两个数字,希望这两个数可以从小到大的输出rn#include "stdafx.h"rn#include"stdio.h"rnvoid main()rnrn void swap(int *q1,int *q2);rn int *p1,*p2;rn int a,b;rn scanf("%d,%d",&a,&b);rn p1=&a;rn p2=&b;//[color=#FF0000][b]如果写成*p1=a;*p2=b;运行就会出现“未处理的异常:System.NullReferenceException:未将对象引用设置到对象的实例。在main()位置……”[/b][/color] rn if(a>b) swap(p1,p2);rn printf("%d,%d",*p1,*p2);rnrnvoid swap(int *q1,int *q2)rnrn int temp;rn temp=*q1;rn *q1=*q2;rn *q2=temp;//[color=#FF0000][b]这里如果写成int *temp;temp=q1;q1=q2;q2=temp;则不能体现这个程序的功能,但书上说是可以这么写的,会不会是书上写错了[/b][/color]rn[b]想问一下出现这些问题的具体原因,是不是编译器的问题,我用的是vs2005rn谢谢大家O(∩_∩)O~[/b]
请问指针int *pa=&a和int *p;p=&b 的区别?
例一:rnint a(5);rnint *pa=&a;rn例二:rnint b;rnint *p;rnp=&b;rn问题一rn是不是例一将a的内存地址放入<em>指针</em>pa的内存内容中。rn例二是不是将b的内存地址赋给<em>指针</em>p的内存地址,即是<em>指针</em>p的内存地址就是b的内存地址。rnrn问题二rn请问rn*pa//是<em>指针</em>pa吗rnpa是不是表示是<em>指针</em>pa的内存地址?rn我们整天说<em>指针</em>pa是指*pa还是指pa(pa是<em>指针</em>名吧!)??rnthankrn
请问指针定义int* p;与int *p;有何区别
如题,哪种写法更合乎标准?
指针赋值中 head=p;与 p=head;功能一样吗???
我写的一段代码:(操作系统进程管理 )rn#include rn#include rn#define LEN sizeof (struct process)rnstruct process //定义结构体rn rn char name[2];rn int time;rn int atime;rn char state;rn struct process *next;rn ;rnrnrnstruct process init ( ) //对进程初始化rn struct process Q;rn printf("请输入进程名:\n");rn scanf("%s",Q.name);rn printf ("请输入该进程的要求运行时间:\n");rn scanf ("%d",&Q.time); //要求运行时间rn Q.atime=0; //已运行时间rn Q.state='R'; //进程状态(就绪R,结束E)rn return (Q);rnrn rn void Runprocess ( struct process *head,struct process *tail ) //进程运行rn struct process *q, *p,*k;rn p=head;rn printf ("现在正在运行的进程为:%s\n",p->name);rn while ( p->atimetime) //已经运行时间少与要求运行时间rn rn p->atime++;rn rn if ( p->atime== p->time )rn p->state='E'; //已经运行时间等于要求运行时间则为结束状态rn printf("进程 %s 已经运行完毕: \n",p->name);rn if (p==head) //如果删除是头进程 rn head=p->next;rn printf ( "%s",head->name);rn k=p;rn p=p->next;rn rn rn else if ( p!=head &&p !=tail ) //如果删除是中间结点 rn rn k=p;rn q->next=p->next;rn p=p->next;rn rn rn else //如果删除是尾结点 rn k=p;rn p=head;rn tail=q;rn q->next=NULL;rn rn free ( k ); rn rn if (p==tail )rn p=head; // 是想把head放在链表的开头不动,将位与链表末尾的p放到最前面去要用rn p=head;还是head=p ;我试过了好像都是一样的,结果是head到了末尾. 为 什么??rn elsern rn p=head;rn p=p->next; rn rn Runprocess ( p,tail );rn rn rnrnrnint main( ) //主函数rn rn struct process Q1,Q2,Q3,Q4,Q5,*head,*tail;rn Q1=init( ); //初始化rn Q2=init( );rn Q3=init( );rn Q4=init( );rn Q5=init( );rn head=&Q1; //建立链表rn Q1.next=&Q2;rn Q2.next=&Q3;rn Q3.next=&Q4;rn Q4.next=&Q5;rn Q5.next=NULL;rn tail=&Q5;rn Runprocess (head,tail); rn rnrn输入rnQ1 ,2, Q2, 3, Q3 ,8, Q4, 1, Q5, 2 rn运行第一次 Q1,Q2,Q3,Q4,Q5还正常,之后就是继续运行Q5之后就是不能运行了rn本来是想运行到Q5后继续去运行Q1的,如果程序有什么错误也敬请提出来,我不胜感激!!
关于指针int *p=&a和*p=&a的纠正
<em>指针</em>是一种类型; int*;这是一种类型; int p;p是int 类型,也就是int型<em>指针</em>; *p指向a;则*p表示的就是a,a是一个int 型变量,所以*p是int变量; int*p=&a是初始化与int *p;p=&a;是完全相同的;所以int *是一种类型 *是<em>指针</em>运算符 是一种运算符 *p代表对<em>指针</em>变量p 操作了<em>指针</em>运算符 p=&a代表p存储了a的地址,此时用*p 就代表了*
指针问题:*(char*)p和(char*)p 在线等,马上给分!!
#include rnrnmain()rnrnvoid *p;rnint i = 100;rnp = &i;rncout << *(char*)p << endl;rnrn//为什么输出d?rn//若把*(char*)p改为(char*)p怎么还是输出d?
指针赋值时应该是p=a还是p=&a
[code=c]#include rnmain()rnrn int a[10];rn int i=0;rn for(i=0;i,*p+1);rn return 0;rnrn[/code]rnrn一、第11行,在VC里p=&a 编译通不过,p=a可以。在啊哈C里面 都可以通过,那么正规的写法是什么。rn二、第12行,*p+1 应不应该加括号,加不加括号都可以通过编译。rn三、论坛没有发帖分了怎么办,离不开大神们啊!!
关于指针int *p[n]与int(*p)[n]的理解
<em>指针</em>的含糊:rn关于int *p[n]与int(*p)[n]是怎样理解的,用简单例子详细说明一下它们之间的区别.rnrn还有关于int *p()与int(*p)()的区别
问各位一个问题,指针p,for循环里为何p
比如说我写一个程序:rn#includernint main()rn//三个学生,各学四门课,计算总平均成绩以及第n学生成绩rn void average(float *p, int n);rn void search(float(*p)[4], int n);rn float a[3][4] = 65,67,70,60 , 80,87,90,81 , 90,99,100,98 ;rn average(*a, 12);rn search(a, 2);rn return 0;rnrnvoid average(float *p, int n)rnrn float sum = 0.0, aver;rn for (; p <= pend; p++);rnrn它就完美运行了。。rnrn所以,这到底是为啥呢为啥呢rn
关于指针的问题,*p和**p,实在没有理解,求教!
有两段代码,都是正确的,如下:rnNO.1 rnmain()rnint x,*p,**pp;rnx=10;rnp=&x;rnpp=&p;rnprintf("x=%d\n",**pp);rn rnNO.2rnrnmain()rnstatic char *ps[]= "BASIC","DBASE","C","FORTRAN",rn"PASCAL";rnchar **pps;rnint i;rnfor(i=0;i,*pps);rnrnrnl两段代码中最后一句分别用了**pp和*pps,明显意义不同,为何输出却又是正确的,我自己在分别修改**pp为*pp和*pps为**pps之后没有得到合理结果,求知道的解释下,万分感激!rn
C语言中,指针p[i]为什么等同于数组p[i]?
在学习c语言<em>指针</em>的过程中,看到这样一段代码:#include &amp;lt;stdio.h&amp;gt; /* 函数声明 */ double getAverage(int *arr, int size); int main () { /* 带有 5 个元素的整型数组 */ int balance[5] = {1000, 2, 3, 17, 50}; double avg; ...
p,*p,&p的区别
定义一个<em>指针</em>p:int *p; p:表示指向一个int型数据a的<em>指针</em> *p:表示p指向的数据的值a &p:表示<em>指针</em>p的地址,&就是取地址符的意思 举个例子:房子A、B、a;A住着a,B住着A p表示A *p表示a &p表示B
c与指针的c和指针(PDF格式).rar
c和<em>指针</em>(PDF格式).rar
C和指针
C和<em>指针</em>
《C和指针
《C和<em>指针</em>》是深入学习C语言的经典教材,C的强大离不开<em>指针</em>。
『C』指针
<em>指针</em>是什么?内存如何编址。<em>指针</em>和<em>指针</em>类型。<em>指针</em>类型的意义?<em>指针</em>的解引用。<em>指针</em>和数组。二级<em>指针</em>。<em>指针</em>运算。
c指针
struct a (*prt_a)[80]; (*prt_a)[0] ... (*prt_a)[79]:80个结构体变量. struct a *prt_a[80]; prt_a[0]....prt_a[79]: 存放了指向结构题变量的<em>指针</em>   代码片段(保存记忆).   int test(student_t **t) {     //t-&amp;gt;p = (class_t *)m...
C与指针
寻求《C与<em>指针</em>》中文版。书或者电子本都行。是书的话请mail联系交易方式:jb7917@163.com。电子版也可以发到我的mial里,同时,说清楚id,好方便给分。
C 指针
由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“<em>指针</em>”。意思是通过它能找到以它为地址的内存单元 以前总是把<em>指针</em>错误的误导为一个针,现在理解,它的值存储的是一块内存区域,哎,时间一长就会对<em>指针</em>的理解扭曲。。。。
c的指针
关于<em>指针</em>的一些总结。
《C》指针
  储存单元: 不同类型的数据所占用的字节不同,上面一个长方形格子表示4个字节 变量: 变量的值,就是存储的内容。变量的名就相当于地址的名。根据变量类型分配空间;通过变量名引用变量的值,程序经过编译将变量名转换为变量的地址,变量名相当于地址名,如i相当于2000,对变量值的存取都是通过地址进行的。变量访问是直接访问。 <em>指针</em>: <em>指针</em>=地址,这两个名称都是描述的一个内容,一个变量的地址...
读书笔记之:C与指针
第2章 基本概念1. 程序的执行过程经历几个阶段:首先是载入到内存中。在宿主环境中(具有操作系统的环境),这个任务由操作系统完成。那些不是存储在堆栈中的尚未初始化的变量将在这个时候得到初始值。在独立的环境中,程序的载入必须由手工安排,也可能是通过把可执行代码置入只读内存(ROM)中来完成。然后程序执行便开始。在宿主环境中,通常一个小型的启动程序与程序链接在一起,它负责处理一系列日常事务,如收集命令...
C指针
先看下下面代码: [code=&quot;c&quot;]#include &quot;stdio.h&quot; #include &quot;conio.h&quot; void go_south_east(int lat, int lon){ lat = lat -1; lon = lon + 1; } int main() { int latitude = 32; int longitud...
c和指针
这个程序要求将源字符串里连续的空白字符缩短成一个空白字符,有句话我看不懂rn[code=c]/*rn** Shrink runs of white space in the given string to a single space.rn*/rn#define NUL ’\0’rnvoidrndeblank( char *string )rnrnchar *dest;rnchar *src;rnint ch;rn/*rn** Set source and destination pointers to beginning of the string, thenrn** move to 2nd character in string.rn*/rnsrc = string;rndest = string++;rn/*rn** Examine each character from the source string.rn*/rnwhile( (ch = *src++) != NUL )rnif( is_white( ch ) )rn/*rn** We found white space. If we’re at the beginning ofrn** the string OR the previous char in the dest is notrn** white space, store a blank.rn*/rnif( src == string/*这里什么意思?注释中的英文我看得懂,就是不懂道理*/|| !is_white( dest[–1] ) )rn*dest++ = ’ ’;rnrnelse rn/*rn** Not white space: just store it.rn*/rn*dest++ = ch;rnrnrn*dest = NUL;rnrnintrnis_white( int ch )rnrnreturn ch == ’ ’ || ch == ’\t’ || ch == ’\v’ || ch == ’\f’ || ch == ’\n’rn|| ch == ’\r’;rn[/code]
c 和指针
《c和<em>指针</em>》中第5章的两个不明白的地方rn1.当整型值转换为float型值时,有可能损失精度。 怎么理解?rn2.表达式x+y的结果大于整型所能容纳的值(产生溢出),在if(x+y+1>0)的结果先计算x+y还是y+1,因为两种情况下溢出的地点不同。怎么理解
C指针原理(20)-C指针基础
2018-12-28 12:59:57 结构与malloc 结构是C语言中重要的一环,malloc是一个重要的函数,它完成了动态内存分配,用malloc分配的内存块要通过free释放。通过结构可以将不同类型的数据组合成一个整体,关于结构<em>指针</em>,LINUX下编程经常会运用一个技巧,这个技巧用在申请缓冲区上,可以申请不同大小的缓冲区。 首先,来看一个概念消息队列 ,一个或多个进程可向消息队列写入消息,...
android流量监控_悬浮窗下载
实时获取网络下载速度并在悬浮窗上显示,可自定义获取周期 相关下载链接:[url=//download.csdn.net/download/csxwc/5981449?utm_source=bbsseo]//download.csdn.net/download/csxwc/5981449?utm_source=bbsseo[/url]
Android百度地图 线路规划,模拟运动轨迹,及全景效果下载
介绍地址 http://blog.csdn.net/zaiyong/article/details/44115317 给客户做的一个百度小案例,没有设计,只实现功能。 定位到当前位置,选择结束位置。然后规划线路 。模拟在线路上的运动轨迹!同时支持全景效果! 请注意 由于百度地图新的申请密钥(key)机制。代码运行需要换key! http://lbsyun.baidu.com/apiconsole/key 相关下载链接:[url=//download.csdn.net/download/zaiyong/8484735?utm_source=bbsseo]//download.csdn.net/download/zaiyong/8484735?utm_source=bbsseo[/url]
ADV7842_Evaluation_Board_Documents.zip下载
adv7842 是一颗信号处理芯片, 支持hdmi vga yuv 输入,支持rgb,ycbcr输出 相关下载链接:[url=//download.csdn.net/download/little_walt/7457869?utm_source=bbsseo]//download.csdn.net/download/little_walt/7457869?utm_source=bbsseo[/url]
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview
我们是很有底线的