C/C++中结构体(struct)知识点强化(四)
C/C++中结构体(struct)知识点强化(四)
出处:PConline 2005年03月07日 作者:管宁 责任编辑:xietaoming
http://pcedu.pconline.com.cn/empolder/gj/c/0503/567942_5.html
最后学习一下如何在已有的链表上插入节点
我们要考虑四中情况,
1.链表为空!
2.插入点在首节点前
3.插入点找不到的情况我们设置放在最后!
4.插入点在中间的情况!
今天的程序在昨天的基础上做了进一步的修改,可以避免删除点找不到的情况,如果找不到删除点就退出函数!
#include <iostream>
using namespace std;
struct test
{
int number;
float socre;
test *next;
};
test *head;//创建一个全局的引导进入链表的指针
test *create()
{
test *ls;//节点指针
test *le;//链尾指针
ls = new test;//把ls指向动态开辟的堆内存地址
cout<<"请输入第一个节点number和节点score,输入0.0跳出函数"<<endl;
cin>>ls->number>>ls->socre;
head=NULL;//进入的时候先不设置head指针指向任何地址,因为不知道是否一上来就输入null跳出程序
le=ls;//把链尾指针设置成刚刚动态开辟的堆内存地址,用于等下设置le->next,也就是下一个节点的位置
while(ls->number!=0)//创建循环条件为ls->number的值不是null,用于循环添加节点
{
if(head==NULL)//判断是否是第一次进入循环
{
head=ls;//如果是第一次进入循环,那么把引导进入链表的指针指向第一次动态开辟的堆内存地址
}&n
相关文档:
出于性能的考虑,标准c库中的某些函数是以宏的方式实现的。
大部分情况下这都是一个有益的方式,但是在跟踪或调试程序时,可能会使你产生困惑。
此时可以使用undef来避免这个问题。
例:
默认情况下
#include <ctype.h>
some code...
....
isspace ......
一. 首先做一个简单的so文件:
/**
* hello.c
* To compile, use following commands:
* gcc -O -c -fPIC -o hello.o hello.c
* gcc -shared ......
仅供学习使用:
/*********************************************
* Name : prime.c
* Purpose : prime (素数判断)
* Author : zimo
* Date : 01/21/2010
* ******************************************/
#include<stdio.h>
int main()
{
int m , n ;
& ......
C/C++中结构体(struct)知识点强化(二)
出处:PConline 2005年03月07日 作者:管宁 责任编辑:xietaoming
首先,我们写这个程序,要考虑到由于是一个链表结构,我们不可能知道它的大小到底是多大,这个问题我们可以用动态开辟堆内存来解决,因为堆内存在程序结束前始终是有效的,不受函数栈空间生命期的限制, ......