#include <stdio.h>
void main()
{
char *str[]={"ENGLISH","MATH","MUSIC","PHYSICS","CHEMISTRY"};
char **q; //为什么是**
int num;
q=str;
for(num=0;num<5;num++)
printf("%s\n",*(q++));
}
#include<stdio.h>
#include<string.h>
main()
{
char *p,array[20];
char ch;
p=array;
printf("capital or uncapital(c)?");
ch=getchar();
if(ch=='C')
strcpy(p,"COMPUTER");
else
strcpy(p,"computer");
puts(p);
return 0;
}
#include<stdio.h>
main()
{
int a[5]={5,5,5,5,5};
float ave;
float s(int a[],int n);
ave=s(a,5);
printf("ave=%f\n",ave);
return 0;
}
float s(int a[],int n)
{
int sum=0,i;
int *p;
float ave;
for(i=0;i<n;i++)
{ p=a; //而不是写到for语句之前
sum+=*(p+i);
}
ave=(float)sum/n;
return ave;
}
#include<stdio.h>
void main()
{
int arr[10],i;
void sort(int a[],int n);
printf("enter 10 numbers:");
for(i=0;i<10;i++)
scanf("%d",&arr[i]);
printf("before sort:");
for(i=0;i<10;i++)
printf("%d",arr[i]);
printf("\n");
sort(arr,10);
printf("after sort:");
for(i=0;i<10;i++)
printf("%d",arr[i]);
printf("\n");
}
void sort(int a[],int n)
{
int p,i,j;
for(i=1;i<n;i++)
{
for(j=0;j<n-i;j++)
{
if(a[j]>a[j+1])
{ p=a[j+1];
a[j+1]=a[j];
a[j]=p;
}
}
}
}
1.指针变量和普通变量一样,可以用来定义语句或者赋值语句的初始化,一般可以把指针为0,NULL,或某个地址。对指针初始化可以防止出现意想不到的结果。
2.指针变量被初始化为NULL时,表示该指针不指向任何值。把它初始化为0其实也等价于把它初始化为NULL,但一般使用NULL,0是唯一一个能够被直接赋予给指针变量的整型数。
if(ptr != NULL)/*确保指针已经被初始化*/
{}