C语言中(p_data[0]<<8 | p_data[1])?
- c语言编程问题
- C语言中p=p->next;语句是什么意思?一般作用是什么?
- C语言怎么定义一个字符串组?
- c语言问题 第三个***found*** p.data为什么只能改成p->data而不能用(*p)
c语言编程问题
p->y代表指针p所指向的对象y的内容,(++p)->x表示p指针向后移动st类型对象的长度后,所指向的对象的x内容。data[0]和data[1]的值分别为(1,10)(2,20)开始p指向data数组的首data[0],这样p->y值为10;然后p向后移动st型的长度1,指向data[1]的地址,所以(++p)->x是2
C语言中p=p->next;语句是什么意思?一般作用是什么?
p=p->next是表示修改指针p的位置,把p指向原来的下一个节点。
作用是:
p1-p2-p3-....... p1->next=p1,那么链表就断了,p2,p3会找不到了,链表变成了 p1--| |-----|。->[0000]->[1111]->[2222]->[3333]->........ | p 开始时p指向节点[0000],那么p->next指向的是节点[1111] 如果执行语句 p->next=p,实际上就是修改了指针p->next的位置,p没有变。
链表变成了: ......->[0000]->| |_____| p ,其它节点还在,但是不能遍历了,因为p->next 还是它自己本身,所以其它节点就找不到了,如果执行p=p->next,这样是修改了p位置,链表变成如下: ......->[0000]->[1111]->[2222]->[3333]->........ | p。
扩展资料
C语言特点
1、C语言是一种结构化的语言,提供的控制语句具有结构化特征。
2、c语言包含34个运算符,它将赋值、括号等均视作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。
3、C语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。
参考资料来源:百度百科—c语言
C语言怎么定义一个字符串组?
如果想完成一组依赖关系的定义,最合适的应该是定义结构体数组,如:
struct data {
int num;
char string[100];
} st_data[]={ //初始化,完成对应关系建立
{1,"one"},
{2,"two"},
{13,"thirteen"}
};
调用:
int i,n;
n=13;
for( i=0;i if ( st_data[i].num==n ) printf("%d-%s\n", n, st_data[i].string );如果num数据是连续的,则可以字符串数组或指针数组来实现,用下标作为索引值,如: const char *p_data[]={//初始化,完成对应关系建立 指针数组适合固定值的初始化,一旦建立,不再改变 "","one","two","three", "four","five" } ; 或: char a_data[20][10]={//初始化,完成对应关系建立 字符串数组,适合动态修改其中的数据,或动态扩充对应关系数据 "", "one","two","three", "four","five" } ; 调用: int i; i=1 ; printf("%d-%s\n", i, a_data[i] ); printf("%d-%s\n", i, p_data[i] ); p->data和(*p).data在这里两者完全等效,可以互相替换 考试所谓唯一的标准答案,其实不唯一,而且也未必标准,有时甚至都未必正确c语言问题 第三个***found*** p.data为什么只能改成p->data而不能用(*p)