一:指針與數組心得體會
指向指針的指針,可以這樣了解,首先指向指針的指針可以把他看成一種特殊的變量,既然是變量就可以存儲不同的元素,比如整形變量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;
}
四: