.


:




:

































 

 

 

 





- , . , , , .

- , . , , , - .

char*p;
chars[] = 'Ci++';
const char* pc = s; //

pc[3] = 'g;
// :

= ; //

 

char *const cp = s; // -
[3] = ', //
= ; //: -

const char *const cpc = s;
//

[3] = ''; :
=; //:

 

.

.

. ,
int (*fp)(int x, int y);


int add(int x, int y)
{ return x + y;}
int sub(int x, int y)
{ return x - y;}

void main()
{
int (*p)(int, int);
p = add;
/* */
printf("1 + 2 = %d\n", (*p)(1, 2));
p = sub;
/* */
printf("1 - 2 = %d\n", p(1, 2));
return 0;

}

 

12.9. void
: void* ; :
void* ;

void* .

void* .

void* void*;
void* ;
void* ( )

void* :
- ,
- .

, .

 

.

void swaptmp(int *px, int *py) /* *px *py */
{
//
int temp;
temp = *px;
*px = *py;
*py = temp;
}

void swap(int *px, int *py)
/* *px *py */
{
//
*px ^= *py;
*py ^= *px;
*px ^= *py;
}

int* Revers(int *a, int n)
//
{
int k;
for (int i=0;i<n/2;i++)
{
k=a[i];
a[i]=a[n-i-1];
a[n-i-1]=k;
}
return a;}

 

int* ReversP(int *a,int n)
{
int k;
for (int i=0;i<n/2;i++)
{
k=*(a+i);
*(a+i)=*(a+n-i-1);
*(a+n-i-1)=k;
}
return a;
}

int* ReversL(int *a,int n)
{
for (int i=0;i<n/2;i++)
{
*(a+i)^=*(a+n-i-1);
*(a+n-i-1)^=*(a+i);
*(a+i)^=*(a+n-i-1);
}
return a;
}

 


void MoveRight(int * a, int n, int num)
{ // num
for (int i=n; i>=(num+1); i--)
a[i]=a[i-1];
}

void MoveLeft(int * a,int *n, int num)
{ // c num
for (int i=num; i<*n-1; i++)
a[i]=a[i+1];
*n=*n-1;
}

int* DeleteCh(int *a,int *n, int item)

{

int i=0;

while (i<*n)

{

if (a[i]==item)

{

MoveLeft(a, n, i);

// a=(int*)realloc(a,(*n)*sizeof(int));

i--;

}

i++;

}

return a;}

 

 

int* InsertCh(int *a,int *n)

{ int i=0;

while (i<*n)

{

if (a[i]%2==0)

{

a=(int *)realloc(a,(*n+1)*sizeof(int));

MoveRight(a,(*n)++,i+1); //

a[i+1]=a[i];

i++;

}

i++;

}

return a;

}

 

" " , "" , "". , "" . N-1 (.. , "" . , , , , .

void sort(int *array, int size)

{

register int i, j;

int temp;

for(i = size - 1; i > 0; i--)

{

for(j = 0; j < i; j++)

{

if(array[j] > array[j+1])

{

temp = array[j];

array[j] = array[j+1];

array[j+1] = temp;

}

}

}

 

return; }

 

 

, i- . , : a[0]...a[i] a[i+1]...a[n].

, (i+1)- a[i+1] .

, .

( ), .

void sort(int *array, int size)

{

register int i, j;

int temp;

for(i = 1; i < size; i++)

{

temp = array[i];

for (j = i - 1; j >= 0; j--)

{

if(array[j] < temp)

break;

array[j+1] = array[j];

}

array[j+1] = temp; }}

acc , .

, .

. , , .

, .

void sort(int *array, int size)

{

register int i, j, k; int temp;

for(i = 0, k = 0; i < size - 1; i++, k++)

{

temp = array[i];

for(j = i + 1; j < size; j++)

{

if(temp > array[j])

{

temp = array[j];

k = j;

}

}

temp = array[i];

array[i] = array[k];

array[k] = temp; }

return; }

,

. , , . = N, N . - O (n).

N .

 

1. .

2. C .

, 4.

3. , , 2.

4. , , - .

int LineSearch (int *a, int n, int x)

{
for (int i = 0;i<n; i++)

if (a[i] == x)

return i;

return -1; //

 





:


: 2016-07-29; !; : 815 |


:

:

, , .
==> ...

1516 - | 1432 -


© 2015-2024 lektsii.org - -

: 0.021 .