第二次博客作业
一:指针与数组心得体会
指向指针的指针,可以这样理解,首先指向指针的指针可以把他看成一种特殊的变量,既然是变量就可以存储不同的元素,比如整形变量int a,a可以存储2,3,4这种普通的整型数据,只要将值付给a就行了,但指向指针的指针所存的元素比较特殊,存放的元素一般是存放地址的指针变量,比如我有三个指针变量,int *p1,*p2,*p3,那么我可以定义一个特殊的变量 int **p,我可以将p1的地址付给p,也可以将p2的地址付给p.比如p=&p1,(类似于int a,int *t,t=&a),那么p就代表了他所指向的变量p1或者p2的地址,而p所指向的变量是一个指针变量,*p代表着这个指针变量里面的值(注意值实际上是一个地址),**p代表着它所指向的指针变量的内容(地址)所指向的存储单元的内容(数值)。
二:在课堂或课后编程学习遇到的问题及解决过程
问题一:不明白指针的具体含义及用法
解决:仔细阅读相关书籍,并专门做一些有关于指针的编程题使得自己对指针这个概念烂熟于心,让自己知道在哪里应该用指针,哪里不需要用。
问题二:有的时候在打完代码后进行编程,却总是发现有错,但是发现不了错误在哪
解决:粗心大意,不是头文件打错了,就是函数名错了,说明还是自己代码打少了,课后多加练习。
问题三:不懂得如何进行内存分配
解决:在头文件“stdlib.h”使用malloc()函数,calloc()函数和relloc()函数。
三:
1:
#include<stdio.h> #include<stdlib.h> main() { char a[80],ch,*p; p=a; int count=0,i; gets(a); ch=getchar(); for(;*p!='\0';*p++) { if(*p==ch) count++; else continue; } printf("%d\n",count); system("pause"); }
2:
#include <stdio.h>1 #include <stdlib.h> #include <string.h> void selectsort(char a[][20],int n) { int i,z,j; char x[20]; for(i=0;i<n;i++) { z=i; for(j=i+1;j<n;j++) if(strcmp(a[j],a[z]) < 0) z=j; if(z>i) { strcpy(x,a[i]); strcpy(a[i],a[z]); strcpy(a[z],x); } }} int main() { int i; char str[5][20]={"english","math","computer","P.E","Chinese"}; printf("The string array:\n"); for(i = 0;i < 5;i++) printf("%s\n",str[i]); selectsort(str,5); printf("After sort the string array:\n"); for(i = 0;i < 5;i++) printf("%s\n",str[i]); system("PAUSE"); return 0; }
四: