
指针
文章平均质量分 63
cuichengjie
这个作者很懒,什么都没留下…
展开
-
进制转换,指针前奏,奇偶互换,左移,右移
//二进制数的高四位和低四位互换 unsigned char a = 130; unsigned char left =0;//存储左移之后的结果 unsigned char right =0;//存储右移之后的结果 left = a <<4; right = a >>4; printf("%d", left原创 2014-07-25 21:22:53 · 660 阅读 · 0 评论 -
指针高级,宏
使用宏应注意的几个问题:使用宏时,最后不能加分号,(分号也会最为替换的内容)参数要加括号对于有参宏,宏名与括号之间不能加空格结构体指针访问结构体成员,通过指向操作符,例如:结构体指针变量->结构体成员printf("%s\n",pStu->name);//指向操作符 pStu->age = 100; printf("%d\n", pStu->age); print原创 2014-08-07 09:10:10 · 454 阅读 · 0 评论 -
函数指针按姓名,年龄,成绩对学生排序
//定义一个学生结构体数组typedef struct student { char name[20];//存储姓名 int age;//存储年龄 float score;//存储成绩}Student;//结构体类型重定义//按年龄排序, 只有判断条件不同,可以把他们单独提出来,因为判断条件的结果只有两个,非0即1,因此可以用bool类型的返回值来代替BOOL原创 2014-07-31 09:37:25 · 1545 阅读 · 0 评论 -
动态内存分配
//**//* 存储区的划分1.栈区:栈区存储局部变量,栈区的内存是系统自动管理的,系统开辟,系统回收,无需程序员管理.2.堆区:通过堆区内存分配函数,分配的空间都在堆区,堆区最大的特点:堆区的空间需要程序员手动管理,手动开辟,手动释放(oc常用)3.常量区:对于字符常量,整型常量,浮点型常量,字符串常量同一存储在该区,该区的内存由系统自动管理,特点:常量区的内容不可修改4.静态区,全原创 2014-08-06 09:29:50 · 427 阅读 · 0 评论 -
函数指针,包装,函数指针按姓名,年龄,成绩排序
//定义一个学生结构体数组typedef struct student { char name[20];//存储姓名 int age;//存储年龄 float score;//存储成绩}Student;//结构体类型重定义//按年龄排序, 只有判断条件不同,可以把他们单独提出来,因为判断条件的结果只有两个,非0即1,因此可以用bool类型的返回值来代替BOOL原创 2014-08-06 09:14:51 · 474 阅读 · 0 评论 -
递归,const的用法
递归//void eatAppleXiaoMeng(int n)//{// //对于递归来说,必须要有出口,也就是递归的结束标志,必须要有结束,否则就会有死循环// if (n == 0) {// return;//return后面什么都不写,代表返回值类型为空void// }// n--;//苹果个数减1// printf("晓檬吃第%原创 2014-08-05 23:00:22 · 713 阅读 · 0 评论 -
按输入的排序方式实现对5个学生进行排序
函数声明,函数实现#import typedef struct student { char name[20];//存储姓名 int age;//存储年龄 float score;//存储成绩}Student;//按年龄排序BOOL sortStudentByAge(Student stu1, Student stu2){ return stu1.age原创 2014-07-30 19:20:38 · 1071 阅读 · 0 评论 -
函数指针
//函数指针类型重定义,指向一个函数typedef void(*app)();//类型重定义typedef int(*PFUN)(int, int);void sendShunFeng(){ printf("发顺丰");}void sendYunda(){ printf("发韵达");}void sendYuanTong(){ printf("发圆通");原创 2014-08-06 09:20:57 · 693 阅读 · 0 评论 -
动态函数调用实现下列操作,输入2个数以及操作符计算结果@ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
//求最大公约数int greatestDivisorOfTwo(int x, int y){ int min = x < y ? x : y; int i = 0; for (int i = min; i > 0; i--) { if (x % i == 0 && y % i == 0) { break; }原创 2014-07-31 09:21:03 · 938 阅读 · 0 评论 -
有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
char str[] = "vkal fjut bkil vcujt lojio cthrh"; char *pStr[6] = {0};//这里的数组个数可以指定地大一些 int i =0, k = 0;//i记录字符个数,k记录指针数组的组数 int length = 0;//length记录单词的长度 while (str[i]原创 2014-07-29 22:58:19 · 588 阅读 · 0 评论 -
输入一个数组长度,动态创建数组,所有元素随机生成,输出元素中的最大值
int n = 0;//存储长度 int max = 0;//存储最大值 //输入一个数组长度 printf("请输入一个数组长度:"); scanf("%d", &n); //动态创建数组 int *p = malloc(n * 4);//分配字节数 printf("随机产生的数组为:"); for (int i = 0;原创 2014-07-30 09:37:27 · 1699 阅读 · 0 评论 -
有一字符串,包含数字与字母,编程去除数字。要求:1要求在原字符串中操作 2、使用指针处理
char str[] ="ahi27io8"; char *p = str; int i = 0; char temp[255] = {0}; while (*(p + i) != '\0') {//以结束标志为判断依据 if (*(p + i) >= '\0' && *(p + i)<='9' ) {原创 2014-07-29 09:05:42 · 1473 阅读 · 0 评论 -
在主函数中输入10个等长的字符串。用另一个函数对它们排序,然后主函数输出10个已经排好的字符串。
//排序void sortChar(char *b[],int count) { for (int i =0; i 1; i ++) { for (int j =0; j 1 - i; j ++) { //而对于数组b来说,数组中的每一个元素都是一个字符型的指针变量,指针变量用来存储地址,指针数组用来存放多个地址原创 2014-07-29 08:58:35 · 3632 阅读 · 0 评论 -
主函数创建5个学生的数组,写一个排序函数,让学生按姓名从小到大排序,主函数输出排序后的结果。
//排序函数void sortOfStruct(Student *pStu, int count){ for (int i = 0; i < count - 1; i ++) { for (int j = 0; j < count - 1 - i; j ++) { if (strcmp((pStu + j)->name, (pStu + j + 1原创 2014-07-28 21:38:52 · 1916 阅读 · 0 评论 -
有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
//1.bug1 : 如果最后一个单词后面直接跟\0.无法获取. //2.bug2 :第一个单词前面出现空格,或者多个空格 //3.bug3 : 单词与单词之间出现多个空格. //1.如何存储文本? char str[] =" a41 a1421 b3511 b b c c c c原创 2014-07-30 09:33:58 · 498 阅读 · 0 评论 -
将字符串中的数字提取出来, 动态分配内存
char str[] = "vaercly12345"; char *a = str; int num = 0, i = 0; while (*(a + i) != '\0') { if (*(a + i) >= '0' && *(a + i) '9') { num++; } i++; } printf(原创 2014-08-03 18:20:31 · 585 阅读 · 0 评论 -
//2、在主函数中输入10个等长的字符串。用另一个函数对它们排序,然后主函数输出10个已经排好的字符串。
//输入10个字符串void pleaseScanfChar(char *b[],int count) { printf("请输入10个等长的字符串"); printf("\n"); for (int i =0; i printf("请输入第%d个字符串", i + 1 ); scanf("%s", b原创 2014-07-28 08:28:52 · 2963 阅读 · 0 评论 -
//1、输入10个整数,将其中最小的数与第一个数对换,把最大的数和最后一个数对换,写三个函数:1.输入10个数,2.进行处理.3输出10个数
void pleaseScanf(int a[],int count) { int *p =NULL; p = a; printf("请输入小于100的数10个\n"); for (int i =0; i printf("请输入第%d个数:\n", i + 1); scanf("%d", p +原创 2014-07-28 08:25:56 · 4109 阅读 · 0 评论 -
指针
定义一个整型变量 int a = 10; 定义一个指针变量,和定义整型变量类似,也是包含三部分:数据类型 变量名=初值 只不过指针变量用来存储地址而已int *p = NULL; //指向关系 p = &a;//将a的地址赋给p printf("%d\n", a);//直接访问 内存单元中的数据 //*p ,此时的作用根据指针变量存储原创 2014-08-07 09:21:35 · 451 阅读 · 0 评论