指针有两个值:
1.指针自身的值
2.指针所指向的值
指针的运算包括:
1.指针±整型
2.指针-指针
要注意,指针和指针是不能相加的。
指针加一的能力为:
typename *p;
p=p+1;
编译器对他的解释为:p=p+sizeof(typename)*1;
今天的作业
#include<stdio.h>
#include<stdlib.h>
#define Ar_Size 100
#define ar_size 10
#if 0
void Print_Int(int* dr)
{
for (int i = 0;i < ar_size;i++)
{
printf("%d\t", dr[i]);
}
printf("\n");
}
void Right_Move_Array(int* br, int n)
{
int cr[ar_size] = { 0 };
cr[0] = br[9];
for (int i = 1;i < n;i++)
{
cr[i] = br[i - 1];
}
Print_Int(cr);
}
void Right_Move_Array_K(int* br, int n)
{
int k = 0;
printf("请输入你想要移动的位数:\n");
scanf_s("%d", &k);
int cr[ar_size] = { 0 };
for (int i = k;i < n;i++)
{
cr[i] = br[i - k];
}
for (int i = 0;i < k;i++)
{
cr[i] = br[n - k + i];
}
Print_Int(cr);
}
void Left_Move_Array(int* br, int n)
{
int cr[ar_size] = { 0 };
for (int i = 0;i < n - 1;i++)
{
cr[i] = br[i + 1];
}
cr[9] = br[0];
Print_Int(cr);
}
void Left_Move_Array_K(int *br,int n)
{
int k = 0;
printf("请输入你想要移动的位数:\n");
scanf_s("%d", &k);
int cr[ar_size] = { 0 };
for (int i = 0;i < n - k;i++)
{
cr[i] = br[i + k];
}
for (int i = 0;i < k;i++)
{
cr[n-k+i] = br[i];
}
Print_Int(cr);
}
int main()
{
int ar[ar_size] = { 1,2,3,4,5,6,7,8,9,10 };
Right_Move_Array(ar, ar_size);
Right_Move_Array_K(ar, ar_size);
Left_Move_Array(ar, ar_size);
Left_Move_Array_K(ar, ar_size);
return 0;
}
int FindValue(int* br, int n, int val)
{
int pos = -1;
for (int i = 0;i < n;i++)
{
if (val == br[i])
{
pos = i;
break;
}
}
return pos;
}
void Init_Array(int *br,int n)
{
int i = 0;
int j = 0;
int temp = 0;
while (i < n)
{
temp = rand() % 100 + 1;
int pos = FindValue(br, i, temp);
if (pos == -1)
{
br[i] = temp;
i++;
}
}
}
void Print_Array(int* br, int n)
{
for (int i = 0;i < n;i++)
{
printf("%5d", br[i]);
if ((i + 1) % 10 == 0)
{
printf("\n");
}
}
}
void Swap_Int(int* pa, int* pb)
{
int temp;
temp = *pa;
*pa = *pb;
*pb = temp;
}
void BubbleSort(int* br, int n)
{
for (int i = 0;i < n - 1;i++)
{
bool res = true;
for (int j = 0;j < n - 1 - i;j++)
{
if (br[j] > br[j + 1])
{
Swap_Int(&br[j], &br[j + 1]);
res = false;
}
}
if (res)
{
break;
}
}
}
int main()
{
int ar[Ar_Size] = { 0 };
Init_Array(ar, Ar_Size);
Print_Array(ar, Ar_Size);
BubbleSort(ar, Ar_Size);
Print_Array(ar, Ar_Size);
return 0;
}
int main()
{
int ar[] = { 12,23,34,45,56 };
int* p = ar;
int x = 0;
int y = 0;
x = *p++;
y = *p;
printf("%d %d\n", x, y);
x = ++ * p;
y = *p;
printf("%d %d\n", x, y);
x = *++p;
y = *p;
printf("%d %d\n", x, y);
printf("0x%08x\n", ar);
printf("0x%08x\n", &ar);
return 0;
}
#endif